我有一个名为 operation.sh 的脚本,当我运行该脚本时,将获得如下所示的输出并等待用户输入。
1. Start
2. Restart
3. Stop
4. Status
Enter Option:
一旦我按下“1”,它就会执行一些逻辑,并再次出现在上面的视图中。
我需要从其他 sh (即 other.sh)调用 operation.sh,例如,
sh other.sh
它必须执行与我在 operation.sh 中按 1 时相同的逻辑。
other.sh 有以下内容。
sh operation.sh 1
我可以理解,这没有意义(但我尝试过,因为我没有任何想法)。
如何从另一个脚本调用菜单脚本(根据用户选择的菜单执行操作)。
答案1
#!/bin/sh
OPC1() {
echo "Opcion 1"
}
OPC2() {
echo "Opcion 2"
}
SELECCIONA() {
if ( test $opc -eq 1 )
then
OPC1
else
OPC2
fi
}
#### MAIN ##########
opc=$1
if [ $1 ]
then
SELECCIONA
else
echo "1. start "
echo "2. stop "
echo "0. salir "
read opc
SELECCIONA
fi
答案2
尝试使用echo -e "1\n2"
管道传输到脚本。只需将菜单响应放在\n
后面的字符串中,并用换行符 ()分隔即可-e
。
echo -e "1\n2" | operation.sh
另一种选择是将响应按顺序排列在文本文件中的每行中。然后,您可以 cat 该文件并将其通过管道传输到脚本。
cat responses.txt | operation.sh