如何从另一个脚本调用具有菜单的脚本

如何从另一个脚本调用具有菜单的脚本

我有一个名为 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

相关内容