美文网首页
Shell系列(一)创建shell程序与shell变量

Shell系列(一)创建shell程序与shell变量

作者: 曲谐_ | 来源:发表于2018-11-09 15:09 被阅读0次

    知乎高票回答:Bash处理一次性的琐碎事物,Python处理自动化,代码量较大的的维护任务。而需要效率的任务交给C/C++。
    作为Linux开发人员,掌握Bash脚本是很重要的,但是最近吸收的东西太多了没办法都记住,所以一定要写写博客记录一下。
    一个比较好的免费课程(shell脚本编程入门到精通)https://edu.aliyun.com/course/155?spm=5176.10731542.0.0.ATHyuM


    一、创建步骤

    开头
    #!/bin/bash#!用作shell命令的完全路径,显示后期命令以哪种shell来执行这些命令。如不指定shell,以当前shell作为执行的shell。/bin/sh ->bash。
    shell程序一般以.sh结尾。
    创建shell程序的步骤

    • 创建一个包含命令和控制结构的shell文件。
    • 修改这个文件的权限使它可以执行。
    • 执行。1)./example.sh 2)绝对路径/root/test/example.sh 3)使用bash,不需要执行权限。bash example.sh。

    二、shell变量

    shell传递数据的一种方法。变量是用来代表每个值的符号名。分为临时/永久变量。
    临时变量:是shell程序内部定义的,使用范围仅限于定义它的程序,对其它程序不可见。
    永久变量:注意,是环境变量,其值不随着shell脚本的执行结束而消失。
    调用方法:echo $PATH(使用变量值时需要在前面加$)
    环境变量非常重要,运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中查找。
    变量赋值

    image.png
    关于$()和${}:

    $()实际上括号里是系统命令的转化调用,如果你只是创建一个临时变量,那么会显示bash:command not found,而如果想转换这种变量需要使用花括号即${}。

    image.png

    前面加上$的变量表示调用该变量的值。
    显示所有变量:set,多个单词用(“”/'')引号括起来即可。
    单引号和双引号的区别:单引号之间的内容原封不动地指定给了变量。双引号取消了空格的作用,特殊符号的含义保留。

    image.png
    删除变量:unset name
    位置变量和特殊变量:Shell解释执行用户的命令时,将命令行的第一个字作为命令名,而其它字作为参数。由出现在命令行上的位置确定的参数成为位置参数。
    如:ls -l —> ls为命令名,-l为位置参数。
    位置变量用$N来表示。如$0表示当前程序文件名,$N(1,……,n)表示命令行输入的参数。

    特殊变量:有些变量是一开始执行Script脚本时就会设定,且不能被修改,但我们不叫它只读的的系统变量,而叫它特殊变量。这些变量当一执行程序时就有了,以下是一些特殊变量:

    • $*:这个程序的所有参数
    • $#:这个程序的参数个数
    • $$:这个程序的PID
    • $!:执行上一个后台程序的PID
    • $?:执行上一个指令的返回值

    综合实例:

    一、参数
    #!/bin/bash
    echo "$* all parameters"//程序的所有参数
    echo "$# parameters amount"//程序的参数个数
    
    touch /tmp/a.txt
    echo "$$ PID"//程序进程ID
    
    touch /tmp/b.txt &
    echo "$! Last PID"//执行上一个后台指令的PID
    echo "$$ PID"//程序进程ID
    

    运行后结果

    image.png

    解释
    注意$$是shell进程本身的PID,如果在shell script里,它就是shell script这个进程的PID。而touch后面我加了一个&,这意味着它以后台运行。因此如果我在touch a的时候加入$!,那么这个Last PID是没有值的。它是后台最后一个运行的进程的PID

    二、变量
    #!/bin/bash
    var1="abcd efg"
    echo $var1
    var2=1234
    echo"The value of var2 is $var2"
    echo $HOME
    echo $PATH
    echo $PWD
    

    运行后结果

    image.png

    相关文章

      网友评论

          本文标题:Shell系列(一)创建shell程序与shell变量

          本文链接:https://www.haomeiwen.com/subject/xfimxqtx.html