构建基础脚本

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  ⚠️:这里在外面获取不到计算器里定义的变量
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容