shell编程基础(2)

版权声明:原创文章,转载请附加链接。 https://blog.csdn.net/qq_36749611/article/details/87395024

shell变量及相关操作

shell环境变量

  1. HOME:用户主目录的全路径名
  2. PATH:变量PATH中定义了一些目录路径,路径由冒号分隔,执行命令时,会搜索这些目录,找到第一个命令执行。
  3. TERM:终端类型
  4. PWD:当前工作目录的绝对路径
  5. PS1:主提示符。root使用#,普通用户使用$
  6. PS2:辅助提示符。当用户输入\后,回车,或shell判断出命令未完成是按下回车键,将显示辅助提示符,可以在辅助提示符下继续输入命令。
  7. SHELL:定义shell解释器路径
  8. MAIL:定义信箱路径
  9. LOGNAME:登录用户的用户名
  10. UID:当前用户的UID

位置变量

  1. 位置变量是依据出现在命令行上的参数的位置来确定的变量
    $命令 参数1 参数2 参数3 。。。

预定义的特殊变量

  1. $# :实际位置参数个数(不包括shell脚本名)
  2. $* :命令行中的所有位置参数组成的字符串
  3. $! :上一个命令对应的进程号
  4. $? :表示最近一条命令执行后的退出状态(返回值,十进制)
  5. $$ :当前进程号PID

用户自定义变量

  1. 变量名区分大小写,开头以字母或下划线开头,后面是任意数量的字母,数字,下划线
  2. 为了使变量名与命令名区分,建议所有变量名用大写字母表示

变量操作

  1. 创建和设置变量
  • 使用内置命令declare或typeset创建变量,可以通过命令参数设置创建方式,如:declare -r 创建只读变量。
  • 直接赋值变量名(为变量赋值时,变量名前不应加$,=后不能有空格)
  • 包含空格的变量,整个字符串使用双引号括起来
  • 可以使用{}来区别变量与其他字符,如:this is ${order}th 。(order=20)
  • 使用unset 删除变量
  1. 变量赋值
  • 直接赋值,赋值时不应添加美元$,且等号前后不能有空格个
  • 使用read命令赋值(read 变量1 变量2 …)
    当shell执行到read命令时,将暂停执行,等待键盘输入,赋值完成后继续执行
    规则如下:
    • 多个数据或变量之间用空格隔开
    • 若变量个数与数据个数相等,则对应赋值
    • 若变量个数大于输入数据个数,则没有输入数据的变量取空值
    • 若变量个数小于输入数据个数,则多余的值全部赋给最后一个变量
    • 可以通过命令行参数对应位置变量赋值
    • 可以将命令执行结果赋值给变量,使用()表示引用命令
    • 使用while循环读入是数据实现赋值
  1. 变量输出
  • printf命令,类似c语言
  • echo命令,直接输出变量
  1. 数组变量
  • 数组的使用类似C语言数组
  • 数组中@符号含义是把原数组的内容复制到一个新数组中,生成的新数组和原来一样
  • 数组中@符号含义是把原数组中的所有元素,(除分隔符外)当成一个元素复制到新数组中,生成的新数组只有一个元素
  • 获得元素个数{# demo[* ]}
  • 获得数组元素长度{# demo[num]}

猜你喜欢

转载自blog.csdn.net/qq_36749611/article/details/87395024