我需要使用 shell 脚本创建一个空文件。文件名将通过检查目录中与某个模式(例如 )匹配的所有文件来确定,TEST.*
并附加到_END
该模式,以便新文件看起来像TEST.2011_END
.设当前目录为$DIR
.所以我尝试:
for file in $DIR/TEST.*
do
touch $file_END
done
这会产生错误。我也尝试替换touch $file_END
为:
filename=$file_END
touch $filename
但没有运气。我应该怎么办?
答案1
语法是:
filename="${file}_END"
或者在你的代码中
touch "${file}_END"
"
只要$file
其中没有任何空格或通配符,引号就不是必需的。
答案2
命令解释器认为您的意思是 $file_END (名为 file_END 的变量的值)。你可以通过引用来解决这个问题。语法可以是:
filename="$file""_END"
或者
filename="$file"_END
甚至
filename=$file"_END"
虽然为了清晰起见我更喜欢第一个!