通过shell脚本来解释变量

  1. 变量赋值、替换等

#!/bin/bash
#1.单变量赋值
variable1=33           #将变量variable1赋值为33
echo ${variable1}      ##第一种显示方法为${variable1}
echo $variable1        ##第二种显示方法为$variable1

variable2="hello world"  #将变量variable2赋值为"hello world",需要用双引号,避免出现字符分隔
echo $variable2      
#****************************************************************************

#2.变量套变量赋值
variable4="We are saying $variable2"  #变量赋值中使用另一个变量$variable2
echo $variable4

#*****************************************************************************

#3.清除变量,但不对变量初始化
unset variable4          #清除variable4变量
echo $variable           ##空白行表示variable4变量未被初始化

#*****************************************************************************

#4.符号:+和符号:- 相同点与区别
#相同点:不能对已经赋值过的变量重新赋值
colour=black                                  #对变量colour赋值
echo "The Background is ${colour:=blue}"      ##:=符号的用法:表示对未赋值的variable,将value赋值给它
echo "The Background is ${colour:-blue}"      ##:-符号的用法:表示对未赋值的variable,将value赋值给它,但value值不储存到variable对应的地址空间
#区别:
unset colour                                 #将变量colour的赋值清除
echo "The Background is ${colour:-blue}"      ##用:-符号对colour赋值
echo $colour                                 ##colour没有真正赋值
echo "The Background is ${colour:=blue}"     ##用:=符号对colour赋值
echo $colour                                 ##colour赋值了

#*******************************************************************************

#5.符号+  对已赋值的variable,重设其值
echo ${colour+red}    ##对已经赋值的colour,重新赋值为red,临时赋值
echo $colour          ##显示原来的赋值

#******************************************************************************

#6.?或:?   对未赋值的variable,显示系统错误信息
 ##变量color是否赋值,如果已经赋值,就显示赋值,没有赋值就显示-bash: b:parameter null or not set
echo ${colour?}   ##变量colour已经赋值了,下面会显示赋值
unset colour      ##清除colour赋值赋值
echo ${colour?}   ##colour没有赋值,下面会显示-bash: b:parameter null or not set


#/bin/bash
colour=blue        ##将变量colour赋值
echo colour
read only colour   ##将变量colour赋值为只读
colour=black       ##将变量colour重新赋值,发现无法赋值
readonly           ##查看系统中所有的只读变量

=========================================================

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


变量的参数使用

#!/bin/bash
echo "The script name is: $0"      # $0表示脚本本身
echo "Parameter #1: $1"            # $1表示第1个参数,后面依次类推
echo "Parameter #2: $2"
echo "Parameter #3: $3"
echo "Parameter #4: $4"
echo "Parameter #5:$5"
echo "Parameter #6: $6"
echo "Parameter #7: $7"
echo "Parameter #8:$8"
echo "Parameter #9: $9"
echo "Parameter #10: ${10}"    # ${10}用花括号

echo "-------------------------"
echo "The number of command line parameters is: $#"   # $#表示传递到脚本的参数数量
echo "All the command line parameters are: $@"        # $@或$*表示传递到脚本的所有参数
echo "The process ID is: $$"                          # $$表示脚本运行的进程号
echo "Did this script have any errors $?"             # $?表示命令的退出状态,0表示没有错误 ,非0 表示有错误

#position脚本说明$0,$1,$2,...,${10},$*,$#,$$,$?
#这里用cat tr cut head tail sed awk less more paste来表示$1到${10}这10个参数


========================================================

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

父进程和子进程的关系


#father.sh:该脚本输出自身进程及调用子进程

#!/bin/bash
#输出父进程号
echo "Father Process ID is $$"

#定义本地变量并输出
localvar="Define a local variable."
echo "localvar=$localvar"

#定义环境变量并输出
ENVVAR="Define a environment variable."
export ENVVAR
echo "ENVVAR=$ENVVAR"

#调用child.sh脚本,即创建子进程
$PWD/child.sh

#child.sh执行完毕,输出相关变量值
echo "Return to father process: $$"
echo "localvar=$localvar"
echo "ENVVAR=$ENVVAR"



#child.sh:该脚本输出自身进程号及父进程号、重新定义本地变量和环境变量
#!/bin/bash

#输出自身进程号及父进程号
echo "Chile Process ID is $$"
echo "My Father Process ID is $PPID"

#输出本地变量和环境变量的当前值
echo "localvar=$localvar"
echo "ENVVAR=$ENVVAR"


#重新定义本地变量和环境变量
localvar="Redefine this ocal variable."
ENVVAR="Redefine this environment variable."
echo "localvar=$localvar"
echo "ENVVAR=$ENVVAR"



本文出自 “尽夜” 博客,请务必保留此出处http://endmoon.blog.51cto.com/8921900/1616629

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。