嵌入式基础认识2:shell脚本的一些简单语法规则

一、关于shell的一些认识

1、shell语言,是一类编程语言。常用shell语言有sh、bash、csh、ksh、perl、python等。linux下最常用的脚本就是bash。

2、shell脚本,即把在命令行中输入的命令写成程序。这样可以避免反复地在命令行下手工输入命令的繁琐工作。

3、shell脚本是文本格式的,因此只要是文本编辑器都可以。Linux的换行符是'\n',windows的换行符是"\r\n",因此windows中的编辑器写的shell不能直接在linux下运行。

4、shell脚本不需要编译而直接运行。其运行机制是“解释运行”,即shell解析器会逐行解释shell程序代码,然后逐行运行。

5、执行shell的方式有三种。

  • 第一种:./xx.sh。这种方式要求shell程序必须具有可执行权限。
  • 第二种:source xx.sh。这种方式不要求脚本具有可执行权限。
  • 第三种:bash xx.sh。bash是一个脚本程序解释器,本质上是一个可执行程序。

二、shell脚本的一些简单语法

1、shell脚本的开头语句#!/bin/sh

  • 开头语句指定shell程序执行时被哪个解释器解释执行。
  • 这里表示该shell程序被/bin目录下的sh可执行程序执行。
  • 可以用#!/bin/bash来指定使用bash执行该脚本。
  • ubuntu默认的解释器sh其实不是bash,而是dash。

2、shell脚本的注释

  • shell脚本的注释使用#。
  • 如果有多行需要注释,每行前面都要加#。

3、shell脚本的变量赋值与引用

  • 变量赋值。使用=进行初始化赋值,=两边不能有空格
  • 变量引用。“$”是变量解引用符号。$符号后面跟着一个字符串,则将该字符串视为变量。如果该字符串没有定义,执行时并不会报错,而是把这个变量解析为空。即,在shell中没有被定义的变量其实就相当于是一个定义并赋值为空的变量。
  • 注意,变量引用的时候可以$var,也可以${var}。但某些情况只能用${var}而不能用$var。

4、shell脚本中的单引号、双引号

(1)使用字符串时可以加双引号或者加单引号,但是不能输出"或者其他转义字符。

(2)单引号中是完全字面替换(不可包含单引号本身)。

(3)双引号中,$加变量名可以取变量的值,反引号仍表示命令替换。除下面情况外,在其它字符前面的\无特殊含义,只表示字面值。

                \$表示$的字面值            输出$符号
                \`表示`的字面值
                \"表示"的字面值
                \\表示\的字面值

5、shell脚本的选择分支结构(if)

6、shell脚本的循环结构

7、shell脚本的echo命令

  • 使用echo指令新建一个文件,并且将一些内容传入这个文件中。
  • 创建文件并输入内容的关键是>。
  • 使用echo指令配合追加符号>>,向一个已经存在的文件末尾追加输入内容。

8、shell脚本中的case语句

  • case默认只执行最先匹配上的那个case,不会再执行后面的其他case。
  • 因此当while和case结合时,break是跳出外层循环而非case语句。

9、执行shell脚本时的传参

(1)执行shell脚本时,可以在执行时给该shell脚本传参。

  • $#,表示执行该shell脚本时传参的个数(真正的参数个数)。
  • $0、$1、$2·····则依次表示各个参数。

(2)对比

  • C语言./a.out 11 22 33,则argc = 4,argv[0] =./a.out,argv[1]=‘11’。
  • shell中:./a.out 11 22 33,则$#=3,$1='11'。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天糊土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值