2016-12-03 81 views
0

这里是我的脚本中的另一个脚本的输出:检查从脚本

#!/bin/bash 

path=$1 

if [[ ./first.sh "$path" == "0" ]] 
    echo "0" 
fi 

脚本“first.sh”打印使用回声的数字。现在在第二个脚本中,我想检查第一个脚本的输出是否为“0”,如果是,打印“0”

我在做什么错?

回答

1

如果要读取在shell中运行的命令/脚本的输出,请将其包装在$()中。例如,variable=$(ls "$path")将给定路径的输出ls读取到variable

将此应用于您的问题

#!/bin/bash 

path=$1 
output=$(./first.sh "$path") 
if [[ "$output" == "0" ]]; then 
    echo "0" 
fi 

请注意,我也删除了一些错误(使用; then if语句后)。

+0

谢谢!是否可以这样做:'if [[$(ls -d * /“$ path”)=“”]];那么'?我想检查路径是否有子目录 –

+0

我的意思是== ==当然是 –

+0

如果你想查看是否有子目录,你可以使用find。它是一个非常有用的工具(检查http://man7.org/linux/man-pages/man1/find.1.html)。 'find“$ path”-maxdepth 0 -type d | wc -l会给你一些子目录。如果它是空的,它应该是1,因为只有'.'将被返回给空的目录。 – CDe