echo "This is an example of the echo command"
# This is a comment line.This would not produce any out put!
变量
variable1=${variable2}
从键盘中读入一个值给变量fname
read fname
export命令特别指出全局变量
环境变量
echo $HOME
命令替换
在单个命令行中使用多个命令的另一种方法(非Pipes)是通过命令替换
echo "The date is `date`"
注意:上面date周围是反撇号
expr命令
用于求值算术表达式。该命令的输出被发送到标准输出
expr 4 + 5 将在屏幕上显示9
算术展开
你可以在$((...))中括一个表达式,用下面的命令来计算它的值
$((expression))
Example1
条件执行
test和[]命令
求值表达式,并返回true(0)或false
if构造
算术测试
结合if构造,它可以用于测试变量的数字值
串测试
test命令也可用于字符串
文件测试
test命令也可用于检查文件的状态
exit命令
用于终止shell脚本的执行并返回到$提示符下
test数值测试
-eq等于为真
-ne不等于为真
-gt大于为真
-ge大于等于为真
-lt小于为真
-le小于等于为真
test字符串测试
=等于为真
!=不等于为真
-z字符串 字符串长度为零为真
-n字符串 字符串长度不为零为真
test文件测试
-e 文件存在为真
-r 文件存在且可读为真
-w 文件存在且可读为真
-x 文件存在且可执行为真
-s 文件存在且至少有一个字符为真
-d 文件存在且为目录为真
-f 文件存在且为普通文件为真
-e 文件存在且为字符型特殊文件为真
-b 文件存在且为块特殊文件为真
-a并且 -o或者 !非
Example2
case...esac构造
shell脚本中使用的这个构造变量的值而执行一组特定指令
当变量的值和其中一个指定的值相匹配时,就执行写在该值下的一组命令
Example3
迭代
while <条件>
do
<命令>
done
只有条件为真时,执行do和done之间的命令
until循环构造的求值模式于while循环相反
until循环将继续执行直到求值的条件为真
for循环
for variable_name in <list_of_values>
do
...
done
for循环取一列值作为输入并对循环中每个值执行循环
break引起终止循环
continue强迫一个新的重复
Example4
控制进程的进行
请求后台处理
用于请求后台进程的符号是&
wc tempfile &
[1] 2082
vi newfile
检查后台进程
Ps(进程状态)命令为每个当前活动的每个进程产生一行入口
终止后台进程
可用kill命令,如:kill 278
查看完成一个命令所花的时间
你可以使用time命令来查看一个命令从开始到结束所花的时间
time find /etc -name "passwd" 2> /dev/null
注:以上命令包含错误重定向2> /dev/null
管道的介绍
垂直条|是管道字符
它指示shell | 前面的命令的输出作为 | 之后命令的输入发送
ls -l | more
用管道组合命令,功能强大
ls -l | more