使用多个命令
-
如果要两个命令一起运行,可在同一提示行输入,用分号分割
date;who
创建shell脚本文件
-
hello word
#!/bin/bash
date
who
显示消息
#!/bin/bash
echo The time and date are:
date
echo "Let's the user is:"
who
echo -n The time and date are: #在同一行显示
date
echo "User info for userid:$USER" #User info for userid:chenhong
echo "User info for userid:${USER}" #User info for userid:chenhong
echo "The cost of the item is \$15" #The cost of the item is $15
使用变量
- 可以使用
set
查看当前进程的环境变量 - shell变量区分大小写
-
shell脚本中最有用的特性之一就是反引号
`
,反引号允许你将shell命令的输出赋值给变量today=`date +%y%m%d`;
ls -al /usr/bin/ > log.$today; - 输出重定向符
>
会覆盖已存在文件,>>
会追加文件内容 - 输入重定向符号
<
右边指定文件,<<
在命令行输入内容,需要指定结尾符
管道
- 管道可用于连接命令,
comand1 | comand2
,不要以为管道链接会一个一个地运行。Linux系统实际上会同时运行这两个命令,在系统内部将它们连接起来。第一个命令产生输出的同时,输出会被立即发送给第二个命令
执行数学运算
-
可以使用美元符号和方括号($[ operation])将数据表达式圈起来
var1=100;
var2=50;
var3=45;
var4=$[$var1 * ($var2-$var3)];
echo "The final is ${var4}" #The final is 500 - bash shell数学运算只支持整数运算
-
可以使用bc解决浮点数的运算问题
“`
demo1
var1=100;
var2=45;
var3=echo "scale=4; $var1 / $var2" | bc
;
echo The answer for this is $var3; #The answer for this is 2.2222
demo2
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 The answer for this is $var5; #The answer for this is 456.7882
“`
退出脚本
- Linux提供了
$?
专属变量来保存上一个执行的命令的退出状态码。你必须在你要查看的命令之后马上查看或使用$?
变量。它的值会变成shell中执行的最后一条命令的退出状态码 - exit命令允许你在脚本结束时,指定一个退出状态码。(状态码最大不超过255)
#!/bin/bash
var1=10;
var2=30;
var3=$[ $var1 + $var2 ]
echo The answer is $var3
#exit 5 #5
exit $var3 #40