我必须编写一个bash菜单脚本,它可以运行其他脚本,但我不能为脚本传递参数,我该怎么办?这是我的代码
#!/bin/bash
# Bash Menu Script Example
PS3='Please enter your choice: '
options=("Option 1" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Option 1")
./script1.sh
;;
"Option 2")
./script2.sh
;;
"Option 3")
./script3.sh
;;
"Quit")
break
;;
*) echo "invalid option $REPLY";;
esac
done
如何传递script1.sh、script2.sh和script3.sh 的参数
您可以在case语句中调用脚本时发送参数。例如,使用您的代码:
#!/bin/bash
# Bash Menu Script Example
PS3='Please enter your choice: '
options=("Option 1" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Option 1")
./script1.sh HelloWorld
;;
"Option 2")
./script2.sh
;;
"Option 3")
./script3.sh
;;
"Quit")
break
;;
*) echo "invalid option $REPLY";;
esac
done
/script1看起来像这样:
#!/bin/bash
echo $1
这是使用您的代码并选择第一个选项的结果。
[20:06:18][/] sh test.sh
1) Option 1
2) Option 2
3) Option 3
4) Quit
Please enter your choice: 1
HelloWorld