所以我不知道这个标题有多聪明,但我只是在想它是否“推荐”使用第二种方法?:
第一种方法:
if mv "$(ls -1 tarball* | head -1)" supertarball.tar; then
echo "A Super Tarball created."
else
echo "No tarballs here."
fi
第二个(也将ls
字符串分配给变量):
LAST="$(ls -1 tarball* | head -1)"
mv $LAST supertarball.tar
res=$?
if [ $res -ne 0 ]; then
echo "A Super Tarball created."
else
echo "No tarballs here."
fi
答案 0 :(得分:3)
他们都很糟糕,但要回答基本问题,请使用if
。这就是它的用途。只有在需要按多种可能的非零状态分支时才需要检查$?
。
在您正在阅读时,don't parse ls和always quote。
f() {
if [ -f "$1" ] && mv -- "$1" supertarball.tar; then
echo 'A Super Tarball created.'
else
echo 'No tarballs here.'
fi >&2
}
f tarball*