使用变量创建带有触摸的文件

Alb*_*zia 1 bash variable touch

我有这个变量?:

toto=123456

为什么touch "$toto.hihi.log"有效并创建一个名为123456.hihi.log的文件

touch "$totohihi.log"什么都不做??

Hau*_*ing 6

你需要

touch "${toto}hihi.log"
Run Code Online (Sandbox Code Playgroud)

问题是,如果没有大括号,shell 就无法知道变量名中有多少个字符。因此,它将所有合法字符视为名称的一部分。在这种情况下,这是.;之前的一切。即外壳使用不存在的变量$totohihi

一般来说,使用 shell 选项-x来查看发生了什么是有帮助的:

set -x
touch "$totohihi.log"
    + touch .log
Run Code Online (Sandbox Code Playgroud)