如何在notify-osd消息中显示命令参数?

如何在notify-osd消息中显示命令参数?

我想用来notify-osd显示桌面通知。还应显示作为输入参数给出的值。

脚本:

param="parameter $1"
echo "${param}"
echo 'notify-send "param no value"' | at now
echo 'notify-send "${param}" "param with value"' | at now

问题:第一个通知显示正确。但是使用的通知${param}从未显示。为什么?

at now稍后当然会按预定时间替换)

答案1

这是因为第二个${param}在单引号内,这意味着当命令由 at 运行时它会被解释,而 at 没有继承该变量,因为它没有被导出。

由于此时它是一个空字符串,因此会notify-send因错误退出,因为需要非空摘要。

你可以用export一个变量来包含你想要使用的值,并在单引号内使用该变量来获取传入的值。或者,at标准输入,您可以直接转储脚本而无需进行多余的转义,如下所示:

/bin/sh #!/bin/sh 复制代码
现在 << EOF
通知发送“${param}”“带值的参数”
末梢血

相关内容