我在尝试编写一个将文件移动到指定文件夹的简单bash函数时遇到了麻烦。我写的代码如下:
mv_file() {
DESTINATION_FOLDER="~/Whatever"
mv $1 $DESTINATION_FOLDER
}
但问题是,$1
通常包含转义字符,例如~/\[Bracketed\]File
,当传递给$1
时,不再包含\
字符,最终会查找~/[Bracketed]File
1}}这不是有效的文件/路径。我已经解决了有关此主题的其他问题,但我并不认为解决方案与此问题有关。有什么建议吗?
答案 0 :(得分:0)
似乎需要进行两项更改。首先,您可能想要替换:
DESTINATION_FOLDER="~/Whatever"
使用:
DESTINATION_FOLDER=~/"Whatever"
只有波形符号未加引号时,shell才会进行波形扩展。
其次,如果脚本的第一个参数被正确引用(问题中不清楚),那么你需要替换:
mv $1 $DESTINATION_FOLDER
使用:
mv "$1" "$DESTINATION_FOLDER"