我正在编写脚本代码,将文件移动到“垃圾箱”。 就目前而言 - 代码工作正常但我希望它在正确移动文件时生成消息,并在特定文件无法移动/不存在时生成消息。
我的代码会接受多个文件名进行输入,例如
#!/bin/sh
mv -u "$@" /root/Dustbin 2>/dev/null
# END OF SCRIPT
但是,如果其中只有一个不存在,它仍会产生错误消息。 我该怎么做但仍然允许它接受参数,如上例所示?
我的代码如下:
{{1}}
对不起,这可能是一个显而易见的问题!我是shellcript的新手!
非常感谢
答案 0 :(得分:1)
您必须遍历参数并尝试移动每个参数:
for path in "$@"; do
if mv -u "$path" /root/Dustbin 2>/dev/null; then
echo "Success"
else
printf 'Failed to move %s\n' "$path"
fi
done
作为迭代参数的简写,您可以省略in "$@"
之类的
for path; do
if mv -u "$path" /root/Dustbin 2>/dev/null; then
echo "Success"
else
printf 'Failed to move %s\n' "$path"
fi
done