我有一个脚本,要求用户输入选项。
当选择该选项时,它会运行一个新终端并为指定的选项执行另一个脚本。
我仍然希望第一个终端上的菜单脚本要求用户输入,而不是退出脚本。如果对此有任何反馈,我将不胜感激。
以下内容是从 OP 的评论中复制的:
以下是一个例子:
menue.sh
#!/binbash
clear
echo
echo
echo
echo "1. Option Here"
echo
echo -n "Choice"
read choice
echo $choice
case $choice in
1) /root/scriptexample/./examplenewterminal.sh
;;
esac
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
examplenewterminal.sh
#!/bin/bash
xterm -e "/root/scriptexample/./example.sh"
bash
clear
echo
example.sh
#!bin/bash 清除 回声 回声 回声 回声 在此处执行命令等等 当您按 Control + C example.sh 停止执行命令时,我希望 xterm 菜单
关闭并且脚本继续在原始终端中加载 menue.sh。
答案1
- 您的评论显示
menue.sh
以 开头#!/binbash
。这应该是#!/bin/bash
。或者,如果您不使用任何bash
特定代码,则只需使用#!/bin/sh
。 - 您似乎正在将脚本(从其他脚本中)调用为
/root/scriptexample/./examplenewterminal.sh
和/root/scriptexample/./example.sh
。这些可能应该只是/root/scriptexample/examplenewterminal.sh
和/root/scriptexample/example.sh
;即 是/./
不必要的(虽然我猜它是无害的,但它会造成混乱)。您不需要./
在运行脚本时使用 ;您需要在运行程序(脚本或编译的二进制文件)时使用它 在当前目录中。 看尝试从另一个 sh 文件执行 sh 文件时出现问题。 - 终止时
example.sh
,examplenewterminal.sh
应继续运行。显然,它启动了另一个bash
shell(我不明白);之后那终止,examplenewterminal.sh
清除屏幕,回显空白行,然后结束。examplenewterminal.sh
终止时,menue.sh
应该继续运行。但随后它就结束了。(应该是什么?只是一个分隔符?)如果您在 之后^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
添加更多代码,或者将现有代码放入循环中,它应该在终止后继续运行。menue.sh
esac
examplenewterminal.sh