Shell编程——变量

Shell变量命名

定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:

var="This is test"

shell变量的命名规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

系统变量

在命令行提示符直接执行 env、 set 查看系统或环境变量。 env 显示用户环境变量, set 显示 Shell预先定义好的变量以及用户变量。可以通过 export 导出成用户变量。
一些写 Shell 脚本时常用的系统变量:

变量 作用
$SHELL 默认 Shell
$HOME 当前用户家目录
$IFS 内部字段分隔符
$LANG 默认语言
$PATH 默认可执行程序路径
$PWD 当前目录
$UID 当前用户 ID
$USER 当前用户
$HISTSIZE 历史命令大小,可通过 HISTTIMEFORMAT 变量设置命令执行时间
$RANDOM 随机生成一个 0 至 32767 的整数
$HOSTNAME 主机名

普通变量和临时变量

普通变量定义: VAR=value
临时环境变量定义: export VAR=value
变量引用: $VAR
两者之间的区别:
Shell 进程的环境变量作用域是 Shell 进程,当 export 导入到系统变量时,则作用域是 Shell 进程及其 Shell 子进程。
在这里插入图片描述
说明:前终端下的所有进程的 PPID 都是-bash 的 PID,比如执行命令、运行脚本。所以当在-bash 下设置的变量,只在-bash 进程下有效,而-bash 下的子进程 bash 是无效的,当export 后才有效。

位置变量

位置变量指的是函数或脚本后跟的第 n 个参数。$1-$n,需要注意的是从第 10 个开始要用花括号调用,例如${10}
实例:

vim example.sh
#!/bin/bash
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别是$*。"
echo "第一个参数为$1,第五个参数为$5。"

运行结果:

bash example.sh 1 2 3 4 5 6
当前脚本名称为example.sh
总共有6个参数,分别是1 2 3 4 5 6。
第一个参数为1,第五个参数为5。

特殊变量

变量名 作用
$0 脚本自身名字
$? 返回上一条命令是否执行成功, 0 为执行成功,非 0 则为执行失败
$# 位置参数总数
$* 所有的位置参数被看做一个字符串
$@ 每个位置参数被看做独立的字符串
$$ 当前进程 PID
$! 上一条运行后台进程的 PID

shell注释

单行注释

# 这是一个注释

多行注释

:<<EOF
注释内容...
注释内容...
注释内容...
EOF

或者

:<<'
注释内容...
注释内容...
注释内容...
'

:<<!
注释内容...
注释内容...
注释内容...
!

猜你喜欢

转载自blog.csdn.net/weixin_42342456/article/details/86140827