嵌入式学习---DAY18:shell脚本

shell脚本文件进程网络HtmlDb

shell脚本是一系列shell命令的集合。   shell   命令解释器

shell编程:解释型语言、边翻译边执行、擅长文件处理,操作系统管理、开发效率高  cp 1  2、执、效率低、移植性好
C语言:编译型语言、先编译再执行、擅长数据计算和数据处理、开发效率低、执行效率高、移植性差

一、shell脚本编写流程

1.vim XX.sh                             第一行写为  #!/bin/bash

2.编写脚本

3.chmod +x XX.sh       也可写为   chmod 777 XX.sh

4../XX.sh

             rwx          rwx       rwx        1                     linux   linux 109 Aug 3 15:47           5.sh*

-普通    作者权限    组用户  其他人 硬链接(关联) 作者名  组名         最后写入时间        文件名

b 块设备                                                     r-x            -wx              r-x

c 字符设备                                                 101           011            101

d 目录                                                          5               3                5

l 软链接                                  改权限     chmod 535 1.sh

p 管道

S 套接字

二、shell变量

1.环境变量:env(命令)

UTF-8    1~8个字节

PATH:系统路径,保存当前工作的默认路径

2.位置变量

$#:传入参数的个数
$?:上一句shell命令执行的结果                      echo   $?           为零则为真,为1则为假
$$:当前shell的PID

三、shell脚本输入输出

read  a                   输入a
echo  '$a'                 输出a

四、打印字符串

"   ":打印字符串,遇到$变量则打印变量中的值
'   ':打印字符串,遇到$变量依然打印$变量

 `  `:将中间的字符串按照命令打印

#!/bin/bash 
name=linux
echo "请输入姓名"             //输入为zhangsan
read name
echo "$name,hello world"    //输出为zhangsan,hello world
echo '$name,hello world'    //输出为$name,hello world

计算两个数的加减乘除

#!/bin/bash 
read a 
read b
#bc
c=`expr $a + $b`
echo "a+b $c"
c=`expr $a - $b`
echo "a-b $c"
c=`expr $a \* $b`
echo "a*b $c"
c=`expr $a / $b`
echo "a/b $c"

五、分支语句

1.if语句


if 条件                                          if                                                               if
then                                            then                                                           then
         语句                                            语句                                                                语句
else                                            elif                                                              fi
         语句                                  then
fi                                                        语句
                                                   else 
                                                   fi     

test -eq 相等   -ne 不相等     -gt 大于    -lt 小于    -ge 大于等于      -le  小于等于

                    test 10 -eq $i     [ $i -eq 10 ]      if( i == 10)     均为一个变量i和10相等

#!/bin/bash 
a=20
b=30

if test $a -gt $b
then
    echo "a >  b"

fi

if [ $a -lt  $b ]
then 
    echo "a < b"
fi

if后可以用test,也可以用[]进行书写。

输入一个文件名,检测是否有这个文件,如果有这个文件内容为什么,没有则创建该文件并将hello world写入其中。

cat:查看该文件内容

#!/bin/bash 
echo "输入文件名"
read filename
if [ -e $filename ]
then 
    cat $filename 
else  

    touch $filename 
    echo "hello world" > $filename  #输出重定向
fi

输出重定向:把”hello world“输入到filename文件中

test 
-b 块设备文件   test -b /dev/usb0
-c 字符设备文件
-d 目录文件
-f  普通文件
-L 链接文件
-S  套接字文件
-p 管道文件

2.case语句

case $num in 
9)语句
;;
8|||)语句
;;
7)语句
;;
*)语句
;;
esac

#!/bin/bash 
echo "input num 1-10"
read a 

case $a in 
    1)
        echo "num is 1"
        ;;
    3|4|5)
    
        echo "num 3-5"
        ;; 
    *)
        echo "other"
        ;;
esac

六、循环语句

1.while语句

while [  条件    ]
do
语句
...
done

#!/bin/bash 
i=0
while [ $i -lt 100 ]
do
    echo "$i"
    #i++;
    i=`expr $i + 1`

done

2.for语句

for  i    in     结束标志
do
语句
...
done

seq:输出某个区间的数,例如seq 20 5 100,输出20到100之间每次隔5的数

#!/bin/bash 
for i in `seq 20 5 100`
do 

    echo "$i"
done

3.until语句

for  [条件]
do
语句
...
done

一直执行循环,直到条件满足为止

#!/bin/bash 
i=0
until [ $i -eq 100 ]
do 
    echo "$i"
    i=`expr $i + 1`
done

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值