【发布时间】:2012-06-01 08:46:26
【问题描述】:
我有以下文件:
~/tmp/testbash$ l
file 1.test move.sh*
move.sh 在哪里:
#!/bin/bash
#-x
FILENAME='file\ .test'
echo $FILENAME
echo joo
mv $FILENAME test.test
当我运行 ./move.sh 时,我得到这个输出和错误:
file\ .test
joo
mv: target `test.test' is not a directory
问题是它执行命令为:
mv file .test test.test
而不是:
mv file\ .test test.test
我该如何解决这个问题?
【问题讨论】:
-
请不要将解决方案编辑成问题。将答案分开可以让他们独立投票、评论和编辑。相反,请单击您接受的答案旁边的复选框。
-
(...说到内容:区分数据和语法很重要;
foo\ bar中的反斜杠是语法 [导致以下空格被视为文字],而反斜杠在'foo\ bar'是数据)。
标签: bash