首页 > 系统相关 >嵌入式学习---DAY18:shell脚本

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

时间:2024-08-03 19:27:48浏览次数:15  
标签:语句 bin shell 文件 echo --- DAY18 bash

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

标签:语句,bin,shell,文件,echo,---,DAY18,bash
From: https://blog.csdn.net/2301_78040391/article/details/140894711

相关文章

  • 在这个只有病人去的场所,你看到了哪些意料之外的举动?--医者仁心:医院里的温情奇迹
    在这个只有病人去的场所,你看到了哪些意料之外的举动?--医者仁心:医院里的温情奇迹在繁忙与喧嚣交织的医院里,每一天都上演着生与死的较量,但在这片看似冷漠的土地上,却也悄然绽放着无数温暖人心的花朵。今天,就让我们一起走进这些感人至深的故事,感受那些医患之间、人与人之间最......
  • CodeForces-808#D 题解
    思路分析分析样例1:3132原数组被分成1和32两部分,将2移到左边即可。我们设左边部分的和为\(s1\),右边为\(s2\),可以发现对于任何分割方式,只有满足\(s1\pmx=s2\mpx\)才可以继续讨论答案是否成立。推论1:由于\(x\ina\)(\(a\)为题目所给数列),因此\(|\s1-s2......
  • ORA-07445 opiaba()+639 ORA-00600 17147数据库宕机
    /u01/app/oracle/diag/rdbms/testaa/testaa/traceThuAug0112:43:372024ArchivedLogentry46044addedforthread1sequence23032ID0x860b01b0dest1:ThuAug0112:51:362024Exception[type:SIGSEGV,SI_KERNEL(general_protection)][ADDR:0x0][PC:0x1......
  • iOS开发基础146-深入解析WKWebView
    WKWebView是苹果在iOS8中引入的重要组件,它替代了UIWebView,为开发者提供了高性能、高稳定性的网页显示和交互能力。在本文中,我们将深入探讨WKWebView的底层架构、关键特性、使用方法和高级功能。一、WKWebView的底层架构WKWebView基于WebKit框架,采用多进程架构,将页面渲染和JavaS......
  • DAY3 高精度算法(+,-,*,/)
    本文将要简单介绍acwing中的高精度算法,高精度指的就是有成百上千位的数进行运算,远远超出当前编程语言中的数据范围。\四个运算中的共同点都是数据位数较长(上千位),处理的方法都是将数据转化为字符串,再将字符串存进vector容器中,根据运算的基本特征进行处理首先介绍高精度加法:题......
  • 5、主板品牌分类介绍:微星 - 计算机硬件品牌系列文章
    微星科技(‌MSI)‌是一家全球知名的IT配件公司,‌专注于主板、‌显卡等产品的研发、‌生产和销售。‌微星科技成立于1986年8月,‌总部位于台湾新北市中和区。‌由徐祥、‌黄金请、‌林文通、‌游贤能、‌卢琪隆五位曾任职于台湾新力公司的工程师共同创办。‌自创立以来,‌微星......
  • 扩展名工具类 - C#小函数类推荐
          此文记录的是扩展名支持工具类。/***扩展名工具类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00使用说明:1、在......
  • 2024-08-03:用go语言,给定一个从 0 开始的字符串数组 `words`, 我们定义一个名为 `isPref
    2024-08-03:用go语言,给定一个从0开始的字符串数组words,我们定义一个名为isPrefixAndSuffix的布尔函数,该函数接受两个字符串参数str1和str2。当str1同时是str2的前缀和后缀时,函数返回true;否则返回false。例如,isPrefixAndSuffix("aba","ababa")返回true,因为"ab......
  • chapter6------段间批量数据传送与循环
    跳过非指令的数据区一般来说,所有处理器指令都应当按顺序存放,在它们中间不允许夹杂非指令的普通数据,因为他们不能作为指令执行,所以要想办法让处理器执行不到这些非指令的内容,比如jmp指令等在数据声明中使用字面值chardb'L',0x07\'a',0x07编译阶段会将这些......
  • 2070 欧拉回路--[中等+]
    #include<iostream>usingnamespacestd;//arr记录邻接矩阵dot记录奇点(每个点连接边数量)ans数组存储结果 intarr[105][105],dot[105],n,m,ans[105];//记录奇点intstart[3],sum=0; //x正在到达的结点cnt是数组ans的下标voiddfs(intx,intcnt){   //边......