![如何在spec文件的postun部分运行脚本](https://linux22.com/image/14104/%E5%A6%82%E4%BD%95%E5%9C%A8spec%E6%96%87%E4%BB%B6%E7%9A%84postun%E9%83%A8%E5%88%86%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC.png)
我有一个包含一些内容的规范文件。还有一个脚本:
%postun
if [ '$1' == 0 ]; then
do some things
fi
我希望在删除包后执行 %postun 部分中的脚本。但在 $1 变量中,我收到一个路径(../../source/)而不是数字。
我如何接收号码而不是路径?
答案1
首先 - 单引号意味着不扩展变量。使用双引号:
if [ "$1" == 0 ]; then
我猜你的脚本看起来像:
%postun
if [ '$1' == 0 ]; then
./some-script.sh foo
fi
请注意,脚本中的 $1 是foo
,而不是 scriptlet 中的 $1 。