我有以下文件: 〜/ tmp / testbash $ l file 1.test move.sh *
where move.sh is:
#!/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文件.test test.test 而不是: mv文件\ .test test.test
有任何解决此问题的建议吗?
答案 0 :(得分:8)
如果变量包含嵌入的空格,则将变量括在双引号(“)中。
FILENAME='file .test'
mv "$FILENAME" test.test
答案 1 :(得分:3)
如果变量值中有空格,请使用双引号:
FILENAME='file\ .test'
echo "$FILENAME"
echo joo
mv "$FILENAME" test.test