【发布时间】:2015-02-24 02:48:46
【问题描述】:
我正在尝试使用稍后调用的可执行文件填充变量。我知道以下是错误的,因为它正在测试返回值,但我不确定如何正确执行(为方便查看而添加了包装):
CHECKSEC=`which checksec 2>/dev/null` || `which checksec.sh 2>/dev/null` ||
`ls /usr/local/bin/checksec 2>/dev/null` || `ls /usr/local/bin/checksec.sh 2>/dev/null`
更准确地说,我知道我可以用一堆 if 语句来做到这一点,但我试图避免它,因为它展开成大约 4 或 8 个块:
if [ -z "$CHECKSEC" ]; then
CHECKSEC=`which checksec 2>/dev/null`
fi
...
if [ -z "$CHECKSEC" ]; then
echo "Unable to locate checksec. If you have it, be sure its on PATH. If"
echo " you need it, you can download it from http://www.trapkit.de/tools/."
exit 1;
fi
是否可以像我想要的那样链接命令来填充变量? (或者这是“你为什么要这样做”之一?)
如果是这样,我如何链接命令,以便在变量不为空且未定义时停止[特定]处理?
【问题讨论】:
标签: bash shell command variable-assignment chain