【发布时间】:2020-05-12 07:19:14
【问题描述】:
刚开始学习如何编写脚本,我正在尝试制作一个循环脚本,该脚本将自动更改所请求文件的权限,并再次询问用户是否要更改其他文件的权限。到目前为止,这就是我所拥有的,尽管我不完全确定如何完全使循环工作。
#!/bin/bash
until "$input"=no
do
echo "Enter the name of file to change permissions"
read filename
chmod 777 $filename
echo "$filename permissions has been changed"
echo "Would you like to change the permissions of another file?(yes or no)"
read $input
done
echo "You typed: $input"
【问题讨论】:
-
使用
[ "$input" = 'no' ]代替"$input"=no,引用$filename并将$从read $input中删除。或者只是阅读有关循环和条件结构的教程 -
您应该使用运行代码的结果更新您的问题;例如,对于当前代码,我猜你会收到类似
-bash: =no: command not found的消息,而这又是由 oguz 的评论解决的;下一个问题可能是您的“读取”命令……您有其中 2 个,但其中一个错误地引用了存储响应的变量(提示:尝试通过 shellcheck 运行您的代码以验证您的语法);那么有(至少)一个逻辑错误......如果用户输入一个无效/不存在的文件名会发生什么? -
太棒了,谢谢! oguz 的建议帮助并修复了它!
标签: bash terminal scripting permissions