在命令行上,我得到这个:
$ FOO=foo $ echo $FOO foo $ echo $$FOO 11971FOO
这里,$$按预期解析为shell的PID,并逐字打印"FOO".
现在,尝试理解和调试一些脚本,我发现以下内容:
#!/bin/bash FILE1=/path/to/file/1 FILE2=/path/to/file/2 echo $$FILE1 >> $$FILE2
有问题的脚本源自Debian软件包的安装后脚本.这应该在它运行之前进行预处理吗?
更新:该脚本是使用epm构建的包的一部分,并通过以下指令读取:
%postinstall在生成的deb包中,postinst脚本显示:
#!/bin/bash FILE1=/path/to/file/1 FILE2=/path/to/file/2 echo $FILE1 >> $FILE2因此,处理由epm或dpkg完成.