我是 bash 新手,我正在尝试这样做,下面是伪代码:
id= "pidof rhytmbox" (rhytmbox changes pid everytime i start it)
echo "Input time: "
read time
sleep $time
kill $pid
你能帮助我吗?
答案1
pid=$(pidof rhythmbox)
echo $pid
echo "Enter time: "
read time
sleep $time
kill $pid
这个成功了!
答案2
如果您打算在时间限制内运行命令,则可以使用超时:
#!/bin/bash
read -r -p \
"Input time in minutes: " duration
[[ ! $duration =~ [^0-9] ]] && \
timeout ${duration}m setsid rhytmbox &>/dev/null &
read
有一个提示选项,在尝试读取输入之前显示。您可以使用正则表达式语句来确保用户输入仅包含数字。现在,我通常想把长期运行如果我关闭终端,应用程序将在后台运行,您可以使用setsid
命令完成此操作&
答案3
我会提供一些提示。
Bash 有一些方法可以将命令的输出分配给变量。
pid=$(pidof top)
pid=`pidof top`
至于其他方面,你基本上走在正确的轨道上。你应该验证用户确实输入了一个整数,而不是诸如 之类的其他文本half an hour
。