我有一个脚本,我想在最后添加一个关机计时器,我想在新的终端窗口中运行倒计时,所以我可以取消它,因为脚本通常会在后台运行。
这是问题,
一个只包含以下内容的简单脚本
secs=$((60))
while [ $secs -gt 0 ]; do
echo -ne "$secs\033[0K\r"
sleep 1
: $((secs--))
done
shutdown now
工作正常,但如果我尝试将其发送到像这样的新终端
gnome-terminal -e "bash -c
'secs=$((60))
while [ $secs -gt 0 ]; do
echo -ne \"$secs\033[0K\r\"
sleep 1
: $((secs--))
done
shutdown now'"
它失败了,只是关闭了。如果我删除关机行,我会收到此错误:
Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
Use “-- ” to terminate the options and put the command line to execute after it.
有谁知道如何解决这个问题?
感谢
答案 0 :(得分:0)
执行此操作的简便方法是导出函数:
countdown() {
secs=60
while (( secs > 0 )); do
printf '%s\033[0K\r' "$secs"
sleep 1
((secs--))
done
shutdown now
}
export -f countdown
gnome-terminal -- bash -c countdown