我有一个大型shell脚本来处理每个Solaris系统的文件。
在开始时,脚本会创建一个变量FILENAME 有时人们创建包含空格的目录/文件。 e.g。
/users/ldap/Anukriti's System Backup/BACKUP/workspace/BP8/scripts/yui/editor/simpleeditor.js
稍后在脚本中我运行
cp $FILENAME $DESTDIR/
您可以想象这总是失败,因为以下内容无效。
cp /users/ldap/Anukriti's System Backup/BACKUP/workspace/BP8/scripts/yui/editor/simpleeditor.js $DESTDIR
我已尝试将变量放入引号中,但这不起作用。我之前使用过find -exec选项,但是对于这种情况并不是真正的选择,特别是因为Solaris不支持-wholename或-path选项
我能在这做什么?
答案 0 :(得分:8)
您只需使用引号保护变量:
cp "$FILENAME" "$DESTDIR"
注意强>
不要使用单引号'
,不能以这种方式扩展变量。
答案 1 :(得分:2)
看起来我需要使用花括号进行变量扩展和双引号
cp“$ {FILENAME}”$ DESTDIR
答案 2 :(得分:0)
确保
$DESTDIR
存在/
。你可能不相信,但那是你的问题。 : - )