在脚本中创建一个具有变量名称的空文件

在脚本中创建一个具有变量名称的空文件

我需要使用 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"

虽然为了清晰起见我更喜欢第一个!

相关内容