变量
声明即用
a=2
b="123"
调用
${varName}或者 $varName
echo $b
echo ${a}
常见变量
- $?:判断上一个语句是否成功
- $0:执行脚本文件名称
- $1:第1个参数
- $n:第n个参数
- $*:参数分别是什么
- $#:参数个数
示例
demo1.sh
echo "脚本文件名称:$0"
echo "第1个参数:$1"
echo "所有的参数:$*"
echo "参数个数:$#"
赋予执行权限
chmod u+x demo1.sh
执行
./demo1.sh param2 1 2 3
输出结果
脚本文件名称:./demo1.sh
第1个参数:param2
所有的参数:param2 1 2 3
参数个数:4
符号
常见符号
>
:向目标文件写入内容
-
会覆盖掉原来的内容
-
例子:向文件1.txt写入hello world字符串
# 直接在bash中可运行 echo hello world > 1.txt
>>
:向目标文件尾部插入内容
-
在源文件尾部追加内容
-
例子:向文件1.txt增加一行hello world字符串
# 直接在bash中可运行 echo hello world >> 1.txt
;
:执行多条指令
-
例子:追加一行内容,然后显示文件当前的内容
# 直接在bash中可运行 echo hello world >> 1.txt ; cat 1.txt
|
:管道符
- 将上一条命令的处理结果传给下一个命令处理
- 例子:将cat结果传给wc命令统计行数
# 直接在bash中可运行 # 最后一个字母为小写的L cat 1.txt | wc -l
&&
:执行多条命令
- 前一条命令出错,会阻塞后续命令执行
- 例子:向1.txt追加一行内容 再查看其行数
# 直接在bash中可运行 echo str >> 1.txt && wc -l 1.txt
||
:执行多条命令
- 前一条命令出错才会执行后续指令
- 例子:向1.txt追加一行内容出错 ,再查看其内容
# 直接在bash中可运行 echo3 str >> 1.txt || cat 1.txt
""
:能够输出变量值
-
能够解析字符串中的 $varName 变量
-
例子:输出hello
# 编写demo3.sh a="hello" echo "$a"
''
:不能够输出变量值
-
不够解析字符串中的 $varName 变量
-
例子:不能输出hello
# 编写demo3.sh a="hello" echo '$a'
输出结果为:$a
``
:输出命令结果
-
例子:输出当前的日期
-
date命令可获取当前日期
echo `date`
2>/dev/null
:错误输出到无底洞
-
命令执行错误则不会出现错误提示
-
执行正确才会有输出结果
-
例子
# 执行 echo1 123 # 正常错误输出 bash: echo1: 未找到命令 # 使用无底洞 echo1 123 2>/dev/null # 没有任何内容输出
1>/dev/null
:正确输出到无底洞
-
命令执行正确则不显示执行结果
-
执行错误才会有错误提示内容
-
例子
# 执行 echo 123 # 正常输出 123 # 使用无底洞 echo 123 1>/dev/null # 没有任何内容输出