设为首页 加入收藏

TOP

在Linux下初学shell命令及例子
2014-11-24 14:00:01 来源: 作者: 【 】 浏览:1
Tags:Linux 初学 shell 命令 例子

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。


Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)
三种shell各有优缺点。Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。


总的来说相当于windows下的bat执行语句。


shell语句的特点
1.文件必须以sh结尾;
2.文件默认产生出来的没有可执行权限,可通过chmod来修改权限;


3.vi分为指令模式和输入模式


a从光标所在位置之后面开始心中内容
A从光标在列的第一个非空字节签名开始插入内容
在指令模式下::q没有修改退出 q!放弃保存退出 wq、x保存退出
/关键字 查找


例子1判断分数


流程


1.在当前文件夹下新建一个shell文件vi score.sh,然后进入vi编辑模式


输入代码


echo "iput s:"
read s
echo "iput is $s"
if [ $s -ge 80 ] ; then
echo good
elif [ $s -ge 60 ] ; then
echo pass
else
echo fail
fi


按ESC,进入命令编辑模式,再按一下shift,再按一下shift+z就快速保存退出


2.在默认条件下,执行shell文件会出现permission denied报错,一般是没有可执行权限。用chmod修改权限


chomd 777 score.sh //把所有权限给aa文件 777代表所有权限


3.接着使用 ./score.sh就可以执行shell了


案例2,:一个小型超市查询系统


实现功能:1.使用账户名adimin 密码123 登陆系统 2.选择要使用的服务,包括查询所以产品、查询单个产品信息、退出。


echo "welcome to supermarket system , please choose: "
select var in "Login" "Exit" ; do
break
done
flag=0
while [ $flag -eq 0 ]
do
if [ $var = "Login" ]; then
echo "Please input your name:"
read name
echo "please input your password"
read pass
if [ $name = "admin" -a $pass = "123" ];then
flag=1
echo "Please choose your option:"
select var in "view all products" "view information about a product" "Exit"; do
break
done
if [ $var = "view information about a product" ];then
echo "Please input the product name:"
read fname
if [ $fname = "fish" ];then
echo "fish price 10.0 amount 100kg"
elif [ $fname = "pork" ];then
echo "pork price 8.0 amount 120kg"
elif [ $fname = "tomato" ];then
echo "tomato price 3.0 amount 100kg"
else
echo "no such things"
fi
fi
fi
fi
done


以上代码错误没查出来,个人觉得逻辑应该没错。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇##号的用途及Linux C测试代码 下一篇C++链栈实现迷宫问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: