关于shell脚本return方法的问题
Questions about shell script return method
我制作了一个脚本来通过PXE 配置服务器。
当通过 pxe 引导时, shell.sh
出现在服务器上。
但是,如果在脚本输入段(读取)中输入了错误的值,则会立即关闭电源。
有没有办法return它到输入段落?
添加了以下脚本:
#!/bin/bash
(omit)
echo "*************************"
echo "Select script"
echo " 1) firmware"
echo " 2) capture"
echo " 3) get"
echo ""
echo " 4) SMBSET_FW+BIOSSET"
echo ""
echo " b) bash shell"
echo " n) systeminfo"
echo " e) poweroff"
echo " r) reboot"
echo "*************************${normal}"
read num
case $num in
1) bash ./firmware.sh;;
2) bash ./capture.sh;;
3) bash ./get.sh;;
4) bash ./smb.sh;;
b) bash ./bash.sh;;
n) bash ./systeminfo.sh;;
e) poweroff -f;;
r) reboot -f;;
esac
将代码放入循环中。如果他们输入不匹配的响应,使用 continue
重复循环,否则跳出循环。
while :; do
echo "*************************"
echo "Select script"
echo " 1) firmware"
echo " 2) capture"
echo " 3) get"
echo ""
echo " 4) SMBSET_FW+BIOSSET"
echo ""
echo " b) bash shell"
echo " n) systeminfo"
echo " e) poweroff"
echo " r) reboot"
echo "*************************${normal}"
read num
case $num in
1) bash ./firmware.sh;;
2) bash ./capture.sh;;
3) bash ./get.sh;;
4) bash ./smb.sh;;
b) bash ./bash.sh;;
n) bash ./systeminfo.sh;;
e) poweroff -f;;
r) reboot -f;;
*) echo "Invalid response, try again"; continue;;
esac
break
done
我制作了一个脚本来通过PXE 配置服务器。
当通过 pxe 引导时, shell.sh
出现在服务器上。
但是,如果在脚本输入段(读取)中输入了错误的值,则会立即关闭电源。
有没有办法return它到输入段落?
添加了以下脚本:
#!/bin/bash
(omit)
echo "*************************"
echo "Select script"
echo " 1) firmware"
echo " 2) capture"
echo " 3) get"
echo ""
echo " 4) SMBSET_FW+BIOSSET"
echo ""
echo " b) bash shell"
echo " n) systeminfo"
echo " e) poweroff"
echo " r) reboot"
echo "*************************${normal}"
read num
case $num in
1) bash ./firmware.sh;;
2) bash ./capture.sh;;
3) bash ./get.sh;;
4) bash ./smb.sh;;
b) bash ./bash.sh;;
n) bash ./systeminfo.sh;;
e) poweroff -f;;
r) reboot -f;;
esac
将代码放入循环中。如果他们输入不匹配的响应,使用 continue
重复循环,否则跳出循环。
while :; do
echo "*************************"
echo "Select script"
echo " 1) firmware"
echo " 2) capture"
echo " 3) get"
echo ""
echo " 4) SMBSET_FW+BIOSSET"
echo ""
echo " b) bash shell"
echo " n) systeminfo"
echo " e) poweroff"
echo " r) reboot"
echo "*************************${normal}"
read num
case $num in
1) bash ./firmware.sh;;
2) bash ./capture.sh;;
3) bash ./get.sh;;
4) bash ./smb.sh;;
b) bash ./bash.sh;;
n) bash ./systeminfo.sh;;
e) poweroff -f;;
r) reboot -f;;
*) echo "Invalid response, try again"; continue;;
esac
break
done