即使使用引号,这怎么可能不起作用?

即使使用引号,这怎么可能不起作用?

我知道要处理文件名中的空格,您应该将整个文件名放在引号之间,但这不适用于此脚本,实际上发生的情况恰恰相反,它只能在不使用引号的情况下工作,我不明白为什么。测试用gnome-terminal.

echo "Drag and drop some file"
read FILE
NAME=$(basename "$FILE")
cp "$FILE" ~/foo/bar/"$NAME" && echo "Success!"

答案1

read希望有一个例子能够说明其中的区别:单引号之间的内容就像您在命令中输入的内容一样

输入姓名不带引号

f='file 1'
touch "$f"
ls --literal -l "$f"
-rw-r--r-- 1 glennj glennj 0 Sep 13 01:57 file 1

输入姓名引号

f='"file 2"'
touch "$f"
ls --literal -l "$f"
-rw-r--r-- 1 glennj glennj 0 Sep 13 01:57 "file 2"

在这种情况下,双引号是文字字符:它们实际上是文件名的一部分。

当您在输入的内容中使用引号时read,引号实际上是文本的一部分。

相关内容