bash 中是否可以引发异常?例如,当我们希望脚本在子命令中发生错误时退出时,这可能很有用。无一例外,我们能做的最好的事情似乎就是|| exit在每个子命令后面附加,这导致可读性很差。
我在bash手册中没有找到有关异常的描述。但我想知道是否有方法可以模拟它们。
我不确定这是否switch是正确的术语,因为我是新手Unix。
我有一个 shell 脚本,需要我所说的 aswitch才能正常运行,但我也想传递参数:
./scriptname -cm
Run Code Online (Sandbox Code Playgroud)
如果我运行./scriptname它就会失败。但我也想传递各种论点:
./scriptname -cm arg1 arg2 arg3 arg4
Run Code Online (Sandbox Code Playgroud)
这似乎由于-cm. 通常,当我./scriptname arg1 arg2 arg3这样做时,它会正常工作,但一旦添加开关,它就会失败。建议?
编辑1:
添加一些更相关的代码:
./scriptname -cm
Run Code Online (Sandbox Code Playgroud)
将会通知
脚本名
gencmlicense()
{
echo $2
do stuff
}
gentermlicense()
{
do stuff
}
if [ "$1" = "-cm" ] ; then
gencmlicense
elif [ "$1" = "-term" ] ; then
gentermlicense
fi
Run Code Online (Sandbox Code Playgroud)
如果我添加一个参数,则echo $2不会打印出传递的第二个参数。
我编写了一个帮助菜单,以供参考shell脚本的使用 my_script.sh
echo $'\n\n'
echo $(printf '=%.0s' {1..100})
printf ' %.0s' {1..40}
echo "Welcome"
echo $(printf '=%.0s' {1..100})
echo $'\n'
arg=$1
echo "Input : $arg"
echo
if [[ arg -eq "-h" ]] || [[ arg -eq "-H" ]] || [[ arg -eq "-help" ]] || [[ arg -eq "-Help" ]] || [[ arg -eq "--h" ]] || [[ arg -eq "--H" ]] || [[ arg -eq "--help" ]] || [[ arg -eq "--Help" ]]; then
echo "Help menu requested...."
echo …Run Code Online (Sandbox Code Playgroud) 我有一个var值变量
backup = urls://string.abc.com
Run Code Online (Sandbox Code Playgroud)
我想排除所有的东西,=所以var有
urls://string.abc.com
Run Code Online (Sandbox Code Playgroud)
我正在使用,var | cut -d "="但没有给出正确的结果
当响应状态为 200 时,如何返回 0?
现在我可以使用以下命令获取状态,例如 200:
curl -LI http://google.com -o /dev/null -w '%{http_code}\n' -s
Run Code Online (Sandbox Code Playgroud)
但是我需要做的是将这 200 转为 return 0。
我怎样才能做到这一点?
我尝试了以下命令,但没有返回:
if [$(curl -LI http://google.com -o /dev/null -w '%{http_code}\n' -s) == "200"]; then echo 0
Run Code Online (Sandbox Code Playgroud)