shell脚本基础语法(1)

shell脚本基础语法(1)

linux下的shell类似windows中的bat,都是脚本(script)文件.主要用于批处理操作。shell文件的编写格式如下:

  1. 第一行注明执行shell的路径,用#!开始。如#!/bin/bash.(此项是必须项)。
  2. 第二行注明此shell需要完成的功能。(此项是可选项)。
  3. 使用字符#作为注释符。如# this is a shell example..
  4. shell脚本的文件名后缀为.sh

如编写一个文件名为test.sh 的shell脚本。

#!/bin/bash
# this is a shell example.

echo "hello word"

上面是最简单的一个shell脚本,一般在编写shell脚本时,会用到如下东西。

  1. 特殊符号。如;*?
  2. 命令。因为shell脚本是命令的集合,所以编写过程中要用到各种命令,如echolscd
  3. 重定向、管道。
  4. 变量。
  5. 条件测试。如判断一个文件是否为可读文件.[-r ~/.profile].
  6. 条件语句、循环语句等。如ifwhile

特殊符号

  1. ; 分行符。类似c语言中的;标识一个命令结束。使用;可以将多个命令写在一行中。如cd dir/subir;ls -al.
  2. : 空命令。返回值为0.
  3. * 通配符,可以匹配任意多个字符。如ls abc*.
  4. ? 通配符,可以匹配任意一个字符。如ls a?c.
  5. $ 取值,通常配合变量使用。如$var.
  6. '' shell不会单引号中的字符串,如echo "$var",则会$var
  7. "" shell会处理双引号中的字符串,如echo "$var",则会输出变量var的值。

内部命令和外部命令

对于shell的命令,可以分为内部命令(eg:cd)和外部命令(eg:ls).内部命令可以在命令行中使用命令help查看。它俩的主要区别是当外部命令被调用时,其实就是调用了另外一个软件,shell会创建子进程,然后在子进程里执行这个软件。

输入输出重定向

  1. > 输出重定向。它可以把标准输出的内容重定向到指定文件中,如果文件存在则覆盖,如果文件不存在则创建。如echo "hello word" > output.txt
  2. >> 也是输出重定向。与>的区别是如果文件存在则追加写。
  3. < 输入重定向。用于将命令的标准输入重定向到一个文件。
  4. << 输入重定向。一般用于Here Document(一种特殊的重定向方式).它的作用是将两个定界符之间的内容传递给指定命令,所以常用于需要多行、复杂的文本输入。如下面的bash,其中EOF为定界符。
    #!/bin/bash
    # shell write test
    echo "begin test"
    ls -al
    cat>hd_new.c<<EOF
    #include <stdio.h>
    void main(void){
        printf("hello word");
    }
    EOF
    

管道

管道符|用于将前一条的标准输出内容传递给下一条命令的标准输入。管道的一个重要特征是管道符两边是不同的进程。eg: cat xxx.txt | grep hello.


关于技术交流

此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。二维码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

theboynoName

感谢鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值