常见变量
- 不同于其它语言需要先声明变量
- shell的变量直接使用
- 调用变量的 $a 或者a 或者 ${a}
lelontar@bogon ~/Downloads echo a
a
lelontar@bogon ~/Downloads echo $a
b
lelontar@bogon ~/Downloads echo ${a}
b
通过一个脚本解释以下变量
#!/bin/bash
echo "第一个参数是:$1"
echo "第二个参数是:$2"
echo "一共有多少个参数:$#"
echo "这些参数是什么:$*"
执行结果
lelontar@bogon ~/Downloads sh shell.sh 1 3 3 4 4 5 5 6 6
第一个参数是:1
第二个参数是:3
一共有多少个参数:9
这些参数是什么:1 3 3 4 4 5 5 6 6
- $1-$9:返回对应的参数值
- $*:返回所有的参数值是什么
- $#:返回参数的个数和
- $?:判断上一条命令执行的是否成功
lelontar@bogon ~/Downloads echo $?
0
- $0:返回脚本的文件名称
lelontar@bogon ~/Downloads echo $0
-zsh
常见的几个符号
- 「>」会覆盖原有的内容
- 「>>」不会覆盖原有的内容
- 「;」 : 执行多条命令
lelontar@bogon ~/Downloads sh shell.sh 2 3;echo $?
第一个参数是:2
第二个参数是:3
一共有多少个参数:2
这些参数是什么:2 3
0
-「|」:管道符
- 「&&」:前面的命令执行成功,后面的才可以执行
lelontar@bogon ~/Downloads cat 123.txt&&echo $?
0
- 「||」:前面的命令执行失败,后面的才可以执行
lelontar@bogon ~/Downloads cat 1234234234.txt||echo $?
cat: 1234234234.txt: No such file or directory
1
- 「""」:会输出变量值
lelontar@bogon ~/Downloads echo "$a"
b
- 「’’」:输出本身
lelontar@bogon ~/Downloads echo '$a'
$a
- 「``」:输出命令结果
lelontar@bogon ~/Downloads echo `echo $a`
b
- 2>/dev/null:错误输出到无底洞
- 1>/dev/null:正确输出到无底洞