1. 用户自定义变量
var1=10 ✅
var2=-50 ✅
var3=word ✅
var4="more word" ✅
⚠️:在变量、等号和值之间不能出现空格
var5 = "failed" ❌
2. 命令替换
有两种方法可以将命令输出赋值给变量
- 反引号 `
- $() 格式
var1=`date`
var2=$(date)
3. 重定向输入和输出
3.1 输出重定向
- 覆盖
ls > test1.log
- 追加
ls >> test2.log
3.2 输入重定向
- 文件输入重定向
wc < test.log
- 内联输入重定向
无需指定文件,在命令行中指定需要输入重定向的数据即可,需要指定终止符
wc << EOF
>test 1
>test 2
>EOF
4. 管道
前一个命令的输出结果传递给下一个命令
5. 执行数学运算
- expr
expr 1 + 2
var1 = $(expr 1 + 2)
var2 = $(expr 1 \* 2) ⚠️:使用expr时特殊符号需要转译,如 *
⚠️:expr 1 + 2 和 expo 1+2结果不同
expr 1 + 2
结果是3,数学运算
expr 1+2
结果是 1+2
expr 1+ 2
语法错误❌
- $[]
不用考虑特殊符号,如*
echo $[1+2]
echo $[1 +2]
echo $[1 + 2]
以上三个命令结果都是:3
🌈:expr和$[]都只支持整数运算,不支持浮点数运算。
6. 浮点数运算命令:bc
在脚本中使用bc
variable=$(echo "options; expression" | bc)
var1=$(echo "scale=4; 1/2"|bc)
多个变量时可以使用内联输入重定向
#!/bin/bash
var1=10.46
var2=43.67
var3=33.2
var4=71
var5=$(bc << EOF
scale=4
a1=($var1 + $var2)
b1=($var3 + $var4)
a1 + b1
EOF
)
echo "var5 is $var5"
echo $a1 ⚠️:这里在外面获取不到计算器里定义的变量
网友评论