gpt4 book ai didi

bash - $$FOO 在 bash 中做什么(在用 epm 构建的 deb 包中)?

转载 作者:行者123 更新时间:2023-11-29 09:06:06 25 4
gpt4 key购买 nike

在命令行上,我得到这个:

$ 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 <script.sh

在生成的 deb 包中,postinst 脚本显示为:

#!/bin/bash
FILE1=/path/to/file/1
FILE2=/path/to/file/2
echo $FILE1 >> $FILE2

因此,处理由 epm 或 dpkg 完成。

最佳答案

这显然是 EPM 打包工具的一个功能。引用 the documentation :

Note that all commands specified in the list file will use the variable expansion provided by EPM, so be sure to quote any dollar sign ($) characters in your commands. For example, "$foo" is replaced by the value of "foo", but "$$foo" becomes "$foo".

关于bash - $$FOO 在 bash 中做什么(在用 epm 构建的 deb 包中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34415787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com