从0写shell(二)

来源:互联网 发布:windows xp 关机重启 编辑:程序博客网 时间:2024/05/16 05:20

在shell中如何使用变量呢?我们直接来看代码var.sh

#!/bin/bash
#定义变量
var=name
#使用变量
echo $var
exit 0
这段代码非常简单,就只是简简单单定义了一个变量var,赋值为name,然后使用$符加变量名来取其值即可,哈哈,使用变量很容易吧!

接下来我们来学习下特殊字符

#      注释,它既可以放在行首,也可以放在命令行的后面

#!     这个符号比较特殊,我把它定位为命令解释器,我们所写的脚本一律使用bash

\        转义字符,如果想打印#符号,可以使用echo "\#"

\n      表示换行

\t       水平制表符

\\       反斜杠

\r       回车

如何在一行中写多条命令呢?其实这个非常简单,只需在命令间加上;号即可

比如我们想打印当前目录,以及查看目录下的所有文件,我们写个简单的脚本check.sh

#!/bin/bash

set -e

#同一行执行两条命令

pwd ; ls

exit 0

很简单吧!

相信学过其他语言的,一定对跳转语句不陌生,shell脚本也有自己的跳转指令,学习后我们不在从头到尾一次执行我们的脚本啦!

首先我们介绍下if语句

假如说我们有这样一个需求,我们在拷贝一个文件前需要判断这个文件是否存在,如果存在在拷贝,不存在则退出.

我们来写一个脚本mycp.sh来完成这样的功能.

#!/bin/bash
set -e
if [ -x $1 ]   #判断文件是否存在,$1表示第一个参数,如果第二个参数可以表示成$2
then
     cp $1 myname   #实现拷贝命令
else
    echo file not exist
    exit  1       #以错误状态退出
fi
exit 0    #正常退出
我们这样去执行,./mycp.sh filename即可.

接下来我们学习下case.这里的case类似与switch语句,我们来写一个选择分支语句.

假如我们有这样一个需求,我们在屏幕上首先打印几条提示信息,然后希望用户根据我们的提示来选择不同的功能.根据用户的选择来执行不同的程序.

现我规定有3条指令可供用户选择:1.pwd(打印当前所在目录)  2.ls(查看所有文件) 3.touch a.c(想创建一个c程序),我们来写一个select.sh来完成这个功能,这里使用case.

#!/bin/bash
set -e
echo "1.pwd   2.ls   3.touch a.c"
echo -n "请选择(选择数字1,2,3即可):"   # -n主要是为了使光标在:后面
read choice #是为了接收用户输入信息,并保存在choice变量中

case "$choice" in   #case语句
1)
    pwd
    ;;        #每个选项以;;结束
2)
    ls  
    ;;  
3)
    touch a.c
    ;;  
esac        #case语句结束
好了,你是否感觉case语句也是如此简单吧!

接下来我们介绍下while循环语句

假如有这样一个需求,每一秒钟打印一个圆点,无限循环下去.

我们写个脚本while.sh,来完成这个功能.

#!/bin/bash

set -e

while true  #永远zhen

do

      echo -n . 

      sleep 1  #休眠1秒

done

exit 0

最后我们介绍下for循环

我们假设一个需求,就是循环打印1-10数字

我们写一个for.sh来实现这个功能

#!/bin/bash

set -e

for i in 1 2 3 4 5 6 7 8 9 10    #for语句

do

    echo -n $i

done

exit 0

今天到这里,三大跳转语句已经学完了,是不是很容易啊!!!


0 0
原创粉丝点击