我无法检查功能测试的返回值;男子测试对我没什么帮助。
#!/bin/bash
test=$(test -d $1)
if [ $test -eq 1 ]
then
echo "the file exists and is a directory"
elif [ $test -eq 0 ]
echo "file does not exist or is not a directory"
else
echo "error"
fi
答案 0 :(得分:5)
尝试,而不是
if test -d $1
then
echo 'the file exists and is a directory'
else
echo 'the file doesn't exist or is not a directory'
fi
答案 1 :(得分:4)
每次在test
的返回代码上使用test
时,上帝会杀死一只小猫。
if test -d "$1"
或
if [ -d "$1" ]
答案 2 :(得分:3)
$(test -d $ 1)将替换为什么测试输出,而不是其返回码。如果要检查其返回码,请使用$?
,例如
test -d $1 test=$? if [ $test -eq 1 ] ...