有没有办法在 shell 中通过参数传递语句?

有没有办法在 shell 中通过参数传递语句?

我想要实现的是在计算机空闲时设置小部件的标题:

xsidle.sh echo mywidget.title = "idle" | awesome-client

当我删除它时xsidle.sh,它可以完美地工作。xsidle.sh大致是:

sleep 10
command="$1"
$command

当然,xsidle 的输出被重定向到 awesome-client,而我正尝试延迟地回显到 awesome-client。

我尝试用“或'进行转义,回显输出是“ mywidget.title = "idle" | awesome-client”。

答案1

#!/bin/sh
sleep 10
"$@"

如果执行完该命令后没有其他操作,则可以使用

exec "$@"

这在你的友好手册页(尝试man sh)中,尽管知道如何找到它并不容易。另请参阅以下问题这个

相关内容