Shell脚本命令的工作方式有两种:交互式和批处理。
交互式:用户每输入一条命令就立即执行
批处理:由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。
使用shell,要使用bash作为命令行终端解释器。
#!/bin/bash
Shell脚本文件的名称理论上可以任意,但为了区分,建议加上.sh后缀,以示是一个脚本文件。
运行shell脚本的两种方式:bash和./
其内设了用于接收参数的变量,变量之间可以用空格分割。
$0-对应当前shell脚本程序的名称
$#-参数的个数
$*-所有位置的参数值
$?-上一次命令的执行返回值(若为0,则成功;若1-255,则失败)
$1,$2...$n-对应第n个位置的参数值
【遇到的bug】:
原语句:$ foo=$'5\r'; echo $((5+foo))
")syntax error: invalid arithmetic operator ( error token is"
原因:windows中,换行标记为\r\n, linux中为\n
windows里面, "\r"成为 CR, "\n"为 LF.
shell的运算符 $() 会去掉末尾的"\n", 这样的话,就剩下 "\r". "\r"会导致标题里的错误。
解决方法:
$ foo=$'5\r'; echo $((5+${foo//$'\r'}))
或者$ foo=$'5\r'; echo $((5+$(tr -d '\r' <<< "$foo")))
输出返回值: