Shell脚本根据用户输入y或n,来执行test.sh,输入y则执行test.sh,输入n则退出
时间: 2024-11-27 22:16:10 浏览: 9
要创建一个根据用户输入决定是否执行`test.sh`的shell脚本,首先需要确认脚本的权限和路径设置正确。由于你之前遇到过`No such file or directory`的错误,确保`test.sh`位于正确的目录下并且文件名和路径都是小写的(因为Unix/Linux通常区分大小写)。
下面是一个简单的示例,展示了如何在shell脚本中实现这个功能:
```bash
#!/system/bin/sh
# Make sure the script has execute permissions (chmod +x test.sh)
chmod +x test.sh
# Prompt user for input
echo -n "Do you want to run 'test.sh'? (y/n): "
read response
if [ "$response" == "y" ]; then
# Execute test.sh if user enters 'y'
. test.sh
else
# Exit if user enters anything else
echo "Exiting..."
fi
```
注意:在这个脚本中,`.`前面加一个空格是为了避免与`.`作为当前目录操作混淆。`./test.sh`用于相对路径运行`test.sh`。
相关问题
Shell脚本根据用户输入y或n,来执行test.sh,输入y则执行test.sh,输入n则退出,y和n不区分大小写
要创建一个能在Android设备上执行的shell脚本,你可以编写一个简单的bash shell script,允许用户输入'y'或'n'来决定是否运行`test.sh`。这里是一个示例,确保你的脚本以Unix风格(UTF-8)编码保存:
```bash
#!/system/bin/sh
# 询问用户是否执行test.sh
read -p "Do you want to execute test.sh (y/n)? " choice
# 转换用户输入并忽略大小写
choice=$(echo "$choice" | tr '[:upper:]' '[:lower:]')
# 检查用户输入
if [[ $choice == "y" ]]; then
# 如果选择y,则尝试执行test.sh
if command -v ./test.sh &> /dev/null; then
./test.sh
else
echo "/system/bin/sh: ./test.sh: No such file or directory"
fi
else
echo "Exiting..."
fi
```
在这个脚本中,我们首先提示用户输入'y'或'n',然后转换输入使其统一为小写。如果用户输入'y',我们会检查`test.sh`是否存在。如果存在,我们就执行它;如果不存在,就显示错误消息。
Shell脚本根据用户输入y或n,来执行test.sh
要实现根据用户输入`y`或`n`来决定是否执行`test.sh`脚本,首先需要确保脚本文件可执行并且位于正确的路径下。按照之前的错误信息,确认`test.sh`的Unix编码并设置好可执行权限:
1. **修改脚本编码**[^1]:
```bash
chmod +x test.sh
nano -w test.sh # 使用文本编辑器打开脚本,确保以#!/system/bin/sh开头,并且编码设置为Unix(通常默认即可)
```
2. **添加交互式询问**:
在`test.sh`中添加以下部分,使用`read`命令获取用户输入并判断是否执行:
```bash
#!/system/bin/sh
read -p "Do you want to run the script? (y/n): " choice
if [[ $choice == "y" ]]; then
echo "Executing test.sh..."
./"test.sh"
elif [[ $choice == "n" ]]; then
echo "Script not executed."
else
echo "Invalid input. Please enter 'y' or 'n'."
fi
```
现在你可以通过运行这个脚本来测试用户输入对脚本执行的影响。如果选择`y`,则会执行`test.sh`;如果选择`n`,则不会执行。
阅读全文