运算
使用等号将值赋给用户变量,在赋值过程中,在变量、等号和值之间不能出现空格。需要注意的是,基本会自动决定变量的数据类型。
shell中算数运算有两种表示方式
#第一种
var3=$(expr $var2 / $var1) #在这种表示方式下,乘号(*)需要进行转义 var3=$(expr $var2 \* $var1)
#第二种
var3=$[$var2 / $var1]
bash shell只提供整数运算,但可以通过bc进行浮点数计算,格式:
var=$(echo "scale=4; 3.44 / 5" | bc) #scale代表计算结果精确的数值位数
还可以通过以下方式表示
var=$(bc<<EOF
scale=4
al=($var1 * $var2)
bl=($var3 * $var4)
al + bl
EOF
)
#在该表示方式下,bash计算器中定义的变量只能在计算器中使用
在进行字符串的比较时,需要对“>”和“<”进行转义,否则系统会理解为重定向
结构化命令
#!/bin/bash
IFS=$'/n'
for line in $(cat ~/Public/June/var.txt) #在var.txt中存储了若干行ip地址
do
IFS=:
for value in $line
do
echo "$value"
done
done
当需要对文件中数据进行遍历时,需要对IFS环境变量进行修改。该脚本第一次修改IFS强制for命令将文件中的每行都当成单独的一个条目来处理;第二次修改IFS将分隔符设置为“:”,进行分隔处理