我写了一个脚本,我正在运行 xmonad 和默认终端白蚁;只是说它是否重要:),也许 xmonad 中有一个解决方案。
, ((altMask, xK_x),
spawn "termite --hold -e /home/emre/pipix.sh")
当我在终端输入时
timeout 30 script.sh
看起来有效。但是当我输入时
termite --hold -e timeout 5 pipi.sh
我收到此警告消息
Try 'timeout --help' for more information.
我做错了什么或者我怎样才能让它发挥作用?
答案1
通常,如果在 CLI 上作为单个选项传递的命令中有空格,我们通常需要将命令用引号引起来,以便程序知道这是timeout 5 pipi.sh
单个命令,而不是三个单独的输入选项。
termite --hold -e "timeout 5 pipi.sh"
请注意,这是我的猜测,基于在命令行上将一行代码传递给程序的常见问题。
答案2
我看到这篇文章,我想将其发布在这里。
https://www.howtoing.com/run-linux-command-with-time-limit-and-timeout/
任何需要给命令设置时间限制的人都需要安装“时间限制”并在命令之前使用
我的在 xmonad.hs 中如下;
, ((altMask, xK_c),
spawn "timelimit -t25 termite --hold -e /home/emre/pipi.sh")
答案3
以下内容经过测试并按预期工作。
#!/bin/sh
temp=$$
(sleep 30; kill $temp; exit) &
echo "Hello. Testing timeout with ed."
# Your never ending code goes here instead.
# Because ed is a new process you will have to kill it.
# killall ed would be replaced with the program name. killall XXX
(sleep 30; killall ed; exit) &
# run ed and put it in append mode and add a few characters.
# ed is never given the . and q! commands so it waits.
ed
a
1234
echo "Should not get here"
# Should get a Terminated message and script exits in 30 seconds.
# And the process for ed is killed is in 30 seconds..
肯