Bash Shellscript-使用mv时显示特定参数的错误
我目前正在为脚本编写代码,以便将文件移动到“垃圾箱”。 目前,代码运行良好,但我希望它在文件正确移动时生成消息,在特定文件无法移动/不存在时生成消息 我的代码将接受输入的多个文件名,例如Bash Shellscript-使用mv时显示特定参数的错误,bash,shell,arguments,Bash,Shell,Arguments,我目前正在为脚本编写代码,以便将文件移动到“垃圾箱”。 目前,代码运行良好,但我希望它在文件正确移动时生成消息,在特定文件无法移动/不存在时生成消息 我的代码将接受输入的多个文件名,例如 # del test1.txt *.html testing.doc # Successfully moved to Dustbin 但是,如果其中只有一个不存在,它仍然会生成错误消息。 如何做到这一点,但仍允许它接受上述示例中所示的参数 我的代码如下: #!/bin/sh mv -u "$@" /root
# del test1.txt *.html testing.doc
# Successfully moved to Dustbin
但是,如果其中只有一个不存在,它仍然会生成错误消息。
如何做到这一点,但仍允许它接受上述示例中所示的参数
我的代码如下:
#!/bin/sh
mv -u "$@" /root/Dustbin 2>/dev/null
# END OF SCRIPT
很抱歉,这可能是一个显而易见的问题!我对shellscript完全是新手
非常感谢您必须迭代参数并尝试移动每个参数:
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
作为迭代参数的简写,您可以在“$@”中省略,如
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
非常感谢。我知道我必须仔细检查每一个论点,但我不知道该怎么做。我甚至都不知道我们可以在bash中使用printf——这完全是新手!:)