5

我有以下文件:

~/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

我怎样才能解决这个问题?

4

2 回答 2

8

如果变量包含嵌入的空格,则用双引号 (") 将变量括起来。

FILENAME='file .test'
mv "$FILENAME" test.test
于 2012-06-01T08:50:24.733 回答
4

如果变量值中有空格,请使用双引号:

FILENAME='file\ .test'
echo "$FILENAME"
echo joo
mv "$FILENAME" test.test
于 2012-06-01T08:50:01.303 回答