1 变量: 赋值为$ 取值有$
var1=10
var2=$var1
echo $var2
注意赋值时变量,等号,值之间不能有空格
2 反引号:将shell命令的输出赋给变量
testing=`date`
echo $testing
3 重定向
3.1 输出重定向
将命令的输出 重定向到文件,重定向的文件若不存在则直接创建
结合date 可以有这样的用法
testing=`date +%y%m%d%H%M%S`
echo "hello~~~" > log.$testing
可以生成 log.140221111309 这样的文件
还有一种是追加 重定向
echo "hi" >>log.140221111309
不会覆盖原来的值,加在文件中原来的值后面
重定向到 /dev/null 是丢弃该消息
还可以这样
1> 表示将标准输出重定向
2> 表示将错误输出重定向
若想把标准输出重定向到错误输出 使用 1> &2
3.2 输入重定向
wc < test1
<表示数据流入的方向
内联输入重定向
wc <<EOF
a1
a2
a3
EOF
4 管道
前一条命令的输出作为后一条命令的输入
管道可以完成重定向两条命令完成的工作
如
rpm -qa > rpm.list
sort < rmp.list
管道不需要中间文件 ,只需要 rpm-qa | sort
我一般比较喜欢用
ps -elf | grep "想要的搜索词"
ls -l | more
等等
5 整数运算
5.1 expr
expr 只能进行整数运算 + - * / % 匹配等
比如 expr 1 + 2 ,符号两侧之间需要有空格
expr 2 \* 3 乘法则要这样写
在脚本中有变量接收需要使用`号
var3=`expr 2 \* 3`
5.2 更好的写法
使用$[1+2] 这种写法,不用在意空格问题,也不用在意乘号
var4=$[($var3+5)*2]
但是要注意的是 $[] 也只支持整数运算
还有种写法和它功能一样是 $((1+2)) 双括号
6 浮点数运算
var5=`echo "scale=4; $var4/$var3" | bc`
多条语句在一行用分号隔开,scale是指浮点运算位数
使用内联重定向来
var6=`bc << EOF
scale=4
a1=2*3
a2=$var3-2
a1+a2
EOF
`