您的位置:首页 > 运维架构 > Shell

嵌入式成长轨迹2【嵌入式环境及基础】【嵌入式Linux软件开发入门】【Shell脚本基础】

2012-02-22 18:53 1116 查看
【Shell常用命令讲解】
一、命令替换
echo "The date is `date`" 在单个命令行中使用多个命令
$ expr 4 + 5 该命令的输出作为标准输出,用于求值算术表达式,注意4后5前都有空格,否则会考虑为字符串
$((expression)) 同样功能,不会考虑为字符串

echo 输出
echo $变量 输出变量对应的值
read +变量 接下来的输入赋予变量
其中打入-n表示不换行(注意,是不换行)

二、条件执行
test和 [ ] 两个命令都为表达式求值,返回布尔值

1、[]前后都应有空格

2、test
test也可以用于字符串状态、检查文件状态(是否存在)
test + (以下:)
1)数值测试
-eq ==
-ne !=
-gt >
-ge >=
-lt <
-le <=
2)字符串测试
=、!=
-z + 字符串 字符串是否长度为零
-n + 字符串 字符串是否长度非零
3)文件测试
-e + 文件 是否存在
-r + 文件 是否存在且可读
-w + 文件 是否存在且可写
-x + 文件 是否存在且可执行
-s + 文件 是否存在且至少有一个字符
-d + 文件 是否存在且为目录
-f + 文件 是否存在且为普通文件
-c + 文件 是否存在且为字符特殊文件
-b + 文件 是否存在且为块特殊文件
文件测试中的连接符
并且 -a
或者 -o
非 !

三、if……fi结构
if[]
then ……
elif []
then ……
else ……
fi

四、case……esac结构
使用这个构造依据变量的值执行一组特定指令
case $变量 in
值1)echo “”;;
值2)echo “”;;
*)echo“”;;
esac
双分号有break直接跳出此结构的功能

五、循环
1、while构造

while <条件>
do
<各种命令>
done

2、until构造
求值模式与while相反,将执行直到求值条件为真
执行最少一次

3、for构造
for 变量名 in 值列表
do……
done

其中,break和continue也可使用

命令+>>+文件 将命令结果重定向到文件

六、控制进程的执行
用于请求后台进程的符号&
$ wc tempfile &
[1] 2082
$ vi newfile

七、后台进程
1、检查后台进程
Ps 在进程状态为每个当前活动的每个进程产生一行入口(代号)

2、终止后台进程
$ kill 278

八、查看完成一个命令所花的时间——time
$ time find /etc -name "passwd" 2> /dev/null
重定向到/dev/null把错误信息忽略掉

九、管道的介绍
| 是管道符号
它指示shell:
|前面的命令的输出作为|之后的命令输入发送

如:
ls -l | more
分页显示 查看详细信息

【demo代码】

一、

The First Shell!

echo "please enter your name:"

read fname

echo ${fname}

s=xxx

echo $s


#对应终端操作
[root@localhost ~]# ls -l
First.sh
-rw-r--r-- 1 root root 6 02-21 19:02 First.sh

[root@localhost ~]# ./First.sh

bash:
./First.sh: 权限不够

[root@localhost ~]# chmod a+x First.sh

[root@localhost ~]# ls -l
First.sh
-rwxr-xr-x 1 root root 6 02-21 19:02 First.sh
[root@localhost ~]# ./First.sh

please enter your name:

mood

mood

xxx

[root@localhost ~]# vi First.sh

[root@localhost ~]# echo $HOME

/root

[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@localhost ~]# vi /etc/profile

在里边进行改动,添加当前路径.作为PATH其中之一,重启动即可直接访问当前目录下的文件无须加./

二、

# CallCenter.sh

#!/bin/bash

echo "Please enter Total number:"
read total
echo "Please enter resolve number:"
read res
echo $((total-res))


三、

# Avg.sh

echo "Please enter score:"
read score
if [ $score -lt 80 ]
then
echo "Bad!"
elif [ $score -ge 80 -a -lt 90 ]

then
echo "Good!!"
else
echo "Very Good!!"

fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐