我知道要处理文件名中的空格,您应该将整个文件名用引号括起来,但这不适用于此脚本,实际上发生的情况恰恰相反,它只能在不使用引号的情况下工作,我不明白为什么. 经测试gnome-terminal
。
echo "Drag and drop some file"
read FILE
NAME=$(basename "$FILE")
cp "$FILE" ~/foo/bar/"$NAME" && echo "Success!"
我知道要处理文件名中的空格,您应该将整个文件名用引号括起来,但这不适用于此脚本,实际上发生的情况恰恰相反,它只能在不使用引号的情况下工作,我不明白为什么. 经测试gnome-terminal
。
echo "Drag and drop some file"
read FILE
NAME=$(basename "$FILE")
cp "$FILE" ~/foo/bar/"$NAME" && echo "Success!"
希望一个例子能说明差异:单引号之间的内容就像您在
read
命令中输入的内容输入不带引号的名称:
输入带引号的名称:
在这种情况下,双引号是文字字符:它们实际上是文件名的一部分。
当您在输入的内容中使用引号时
read
,引号实际上是文本的一部分。