我正在尝试做一个简单的内核验证systemd服务。
服务是:
[Unit]
Description= It checks kernel version
[Service]
ExecStart=/home/handle-kernel-version.sh $EXPECTED_KERNEL $(uname -r)
StandardOutput=journal+console
EnvironmentFile=/home/input_kernel.txt
Type=oneshot
[Install]
WantedBy=multi-user.target
问题是,第二个参数被传递为
$(uname
而不是实际的内核版本。我想这是由于转义字符的systemd处理,我当然可以通过在bash脚本中添加uname行来绕过这个问题,但我还是想知道oneline方法的解决方案。