文章目录
- 1. 双引号
- 2. 单引号
- 3. 反引号
- 4. $()
- 5. $(())
- 6. $[]
- 7. ${}
- 8. ()
- 9. (())
- 10. []
- 11. [[]]
1. 双引号
有特殊意义符号
- $
- `
- \??
jiaming@jiaming-VirtualBox:~/shell_practice$ a=3
jiaming@jiaming-VirtualBox:~/shell_practice$ echo "$a"
3
jiaming@jiaming-VirtualBox:~/shell_practice$ a="<a>"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
<a>
jiaming@jiaming-VirtualBox:~/shell_practice$ a=<a>
bash: 未预期的符号 `newline' 附近有语法错误
jiaming@jiaming-VirtualBox:~/shell_practice$ a= "123"
123:未找到命令
jiaming@jiaming-VirtualBox:~/shell_practice$ a=" 123"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo "$a"
123
jiaming@jiaming-VirtualBox:~/shell_practice$ a="`pwd`"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
/home/jiaming/shell_practice
jiaming@jiaming-VirtualBox:~/shell_practice$ b=abc
jiaming@jiaming-VirtualBox:~/shell_practice$ a="$b"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
abc
jiaming@jiaming-VirtualBox:~/shell_practice$ a="a\nb\nc"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
a\nb\nc
2. 单引号
无特殊意义字符,可以有空格,纯字符串
jiaming@jiaming-VirtualBox:~/shell_practice$ a='a\nb'
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
a\nb
jiaming@jiaming-VirtualBox:~/shell_practice$ a='$a'
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
$a
jiaming@jiaming-VirtualBox:~/shell_practice$ a='$ a'
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
$ a
3. 反引号
命令
`commands`
4. $()
命令
$(commands)
jiaming@jiaming-VirtualBox:~/shell_practice$ date
2020年 11月 10日 星期二 15:00:55 CST
jiaming@jiaming-VirtualBox:~/shell_practice$ echo `date`
2020年 11月 10日 星期二 15:01:02 CST
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $(date)
2020年 11月 10日 星期二 15:01:11 CST
5. $(())
算数运算
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $(( 1+ 2 ))
3
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $(( 2* 2/3 ))
1
6. $[]
算数运算
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $[ 2* 2/3 ]
1
7. ${}
变量替换、结合数组
#!/bin/bash
a=3
b=5
echo $ab # ab 视作一个变量,输出为空。
echo ${a}b # 输出 3b
exit 0
8. ()
数组
jiaming@jiaming-VirtualBox:~/shell_practice$ a=(1 2 3 4 5)
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
1
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[0]}
1
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[1]}
2
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[4]}
5
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[5]}
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[*]}
1 2 3 4 5
9. (())
高级数学表达,C 语言的 for
for ((i = 0; i < 10; i++))
do
echo -n "$i "
done
echo ""
exit 0
10. []
等价于 test,条件测试
read -p "please enter a number: " num
if [ $num -gt 10 ]; then
echo "num > 10"
else
echo "num <= 10"
fi
11. [[]]
字符串比较,可用正则
#!/bin/bash
if [[ hello == hell* ]]; then
echo "equal"
else
echo "unequal"
fi
exit 0
jiaming@jiaming-VirtualBox:~/shell_practice$ bash sample.sh # 非 sh sample.sh