如何在BASH中为特定输入编写错误消息?
我对BASH还不熟悉,一般来说脚本编写得很好,正在编写BASH脚本,但不知道该怎么做 我目前有一个脚本正在工作,它通过特定的用户输入为后续软件编写一个文件 但是,软件工作需要特定的数字和短语,因此我想写一条错误消息,如果输入不正确,则会显示一条错误消息,而不是脚本失败并从头开始如何在BASH中为特定输入编写错误消息?,bash,Bash,我对BASH还不熟悉,一般来说脚本编写得很好,正在编写BASH脚本,但不知道该怎么做 我目前有一个脚本正在工作,它通过特定的用户输入为后续软件编写一个文件 但是,软件工作需要特定的数字和短语,因此我想写一条错误消息,如果输入不正确,则会显示一条错误消息,而不是脚本失败并从头开始 ##写入inp.add文件## printf“\n${bold}正在写入inp.add文件\n${normal}” 阅读-p“处理器数量:”NPROC 读取-p“波函数文件(带.wfx):”wfx 读取-p“坐标文件(多
##写入inp.add文件##
printf“\n${bold}正在写入inp.add文件\n${normal}”
阅读-p“处理器数量:”NPROC
读取-p“波函数文件(带.wfx):”wfx
读取-p“坐标文件(多维数据集或.txt):”坐标
回声“自动拾取AOM_材料占用”
读取-p“重叠(LO或LDO):”重叠
printf“\n运行高斯:${bold}$JOBNAME\n${normal}”
使用,同时保持状态;做完成
:
while true ; do
read -p "Input var: " var
[[ -n "$var" ]] && break
echo "Please enter a non-empty value"
done
echo "You entered $var"
将请求输入,直到输入为非空。这不是我的意思。例如,在代码部分:read-p“Overlap(LO或LDO):”Overlap软件的唯一选项是LO和LDO,因此如果没有输入这两个选项中的一个,则需要一条错误消息并重复该操作question@ThomasBates你应该用那句话来编辑你的问题,这会让问题变得很不一样,而且可能不再是一个副本了。@ThomasBates四个副本在问题的顶部链接起来。仅供参考,你不需要[[1==1]]你可以使用[[1]]实际上你也不需要
[[
。惯用的无休止循环是while true
甚至while: