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

在Linux下初学shell命令及例子(1)

2011-12-03 21:46 375 查看
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

以上代码错误没查出来,个人觉得逻辑应该没错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell linux input login bash unix