gpt4 book ai didi

bash - 使用 systemctl hibernate 编写休眠定时器

转载 作者:行者123 更新时间:2023-12-05 05:27:18 25 4
gpt4 key购买 nike

我想使用 systemctl hibernate 和 root 权限编写一个休眠计时器函数。

这是我的功能:

hibernate-timer() {
sudo bash -c 'echo "System is going to hibernate in $1 minute(s)..."
sleep $1m
systemctl hibernate'
}

例如运行 hibernate-timer 50 时,我希望系统在 50 分钟后休眠。但是,我收到以下错误消息:sleep: invalid time interval ‘m’

谁能告诉我如何使用 root 权限编写休眠计时器?

最佳答案

您忘记在单引号后将参数传递给 bash -c:

hibernate-timer() {
sudo bash -c 'echo "System is going to hibernate in $1 minute(s)..."
sleep $1m
systemctl hibernate' -- $1
}

注意 -- $1 我在最后添加的。如果没有这个,bash -c 中的命令不会获得任何命令行参数,因此命令中的 $1 的值为空,所以 sleep 50m 命令变为 sleep m 将不起作用。

来自手册页:

   --        A  --  signals the end of options and disables further option
processing. Any arguments after the -- are treated as file‐
names and arguments.

这就是 -- $1bash -c '...' 中作为命令参数传入的方式

关于bash - 使用 systemctl hibernate 编写休眠定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20310073/

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