如何验证bash脚本中是否存在LOGNAME
if [`logname`]; then
echo -e \\t "-- Logname : `logname`" >> $normal_output_filename
fi
上面给出了一个错误行76:[logname]:找不到命令
答案 0 :(得分:3)
也许试试:
if [ -e /bin/logname ]; then
LOGNAME=`logname`
echo -e \\t "-- Logname : ${LOGNAME}" >> $normal_output_filename
fi
实际上,使用命令替换最好不要使用backtics,而是:
LOGNAME=$(logname)
使用此语法可以轻松嵌套命令替换,而不必担心使用旧的backtic语法时的反斜杠层。
HTH
欢呼声,
答案 1 :(得分:3)
if [ `logname` ]; then
echo -e \\t "-- Logname : `logname`" >> $normal_output_filename
fi
注意[和`。
之间的空间答案 2 :(得分:1)
答案 3 :(得分:0)
您可以尝试使用“which”命令查看指定的命令是否存在:
if which logname >/dev/null 2>&1; then
#do something here
fi
答案 4 :(得分:0)
行。另一个答案。不太确定是否适合你,但是:
if test -n `logname`; then
echo -e \\t "-- Logname : `logname`"
fi
我想在if
你要检查logname命令是否返回任何东西(当它不是?)。如果是,则打印出来。
test -n
检查下一个参数是否为空字符串。