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

2018-11-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变量

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

综合实例:

一、参数
#!/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
上一篇 下一篇

猜你喜欢

热点阅读