一、这节课掌握如下几个知识点
【1】定义变量,设置环境变量
【2】打印执行结果、导入函数或变量
【3】获取命令执行返回的结果、获取命令的进程id
【4】掌握的shell参数的传递
【5】将结果保存到文件
二、通过如下代码片段掌握这部分知识
库函数:1.lib.sh,将该脚本复制到1.lib.sh并赋予执行权限:chmod +x 1.lib.sh。
#!/bin/bash
#1.lib.sh
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
export LANG=zh_CN.UTF-8
export PATH
word="I Love Shell"
PrintWord() {
echo "Run PrintWord Function"
}
主执行脚本:1.sh,将该脚本复制到1.sh,和1.lib.sh相同目录下, 并赋予执行权限:chmod +x 1.sh。然后执行:bash 1.sh "aa" "bb"。根据脚本中的注释分析一下执行结果,如果需要加上调试过程:bash -x 1.sh "aa" "bb"。
#!/bin/bash
#shell脚本解释器的路径
#1.sh v1
#create by maoge
#系统变量,脚本定义好环境变量,能避免脚本执行中的坑
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
export LANG=zh_CN.UTF-8
export PATH
#打印输出
echo "hello"
#导入函数及变量
source ./1.lib.sh #引入当前路径下的1.lib.sh中的变量或函数,引入的可以是任意符合shell规范的文件
echo $word #输出1.lib.sh中的word变量的值
PrintWord #执行1.lib.sh中的PrintWord函数
#定义变量
a1="Hello Word"
echo $a1 #直接输出定义的变量
a2=$(cat /etc/passwd|grep root) #将执行的结果输出到变量
echo ${a2} #打印执行结果
#获取本命令执行时的pid 进程id
df -h
echo $! #输出执行df -h执行后的进程ID。
#重定向
echo "one" >/tmp/1.txt #将结果one导出到1.txt,此时/tmp/1.txt中只有一行one,
echo "two" >>/tmp/1.txt #将two追加到1.txt的末尾,此时/tmp/1.txt中有一行one,一行two
#获取上一条命令的执行结果
ls /tmp/1.txt
echo $? #执行成功返回0,返回非0 结果的均为失败,如果存在/tmp/1.txt 返回0,不存在返回非0的数字2
#读取传入的参数
echo $1
echo $2 #执行脚本:bash 1.sh "aa" "bb",则$1表示aa, $2表示bb