2016年7月27日星期三

Linux_112:精通 shell 编程之二:shell 变量

环境:RHEL 7.1 或 MAC 10.11.6

shell 变量是在 shell 初始化的时候被设定的内部变量。

1. PWD
当前的工作目录。

2. UID
当前用户的数字标识。

3. SHLVL
每打开一个新的 bash,就自增 1,用于确认是否关闭了当前会话。

4. REPLY
REPLY 变量 与 read 和 select 命令有关。
(1)read variable 命令用于读取标准输入的变量值,该值会存储到 variable 变量中。
如果 read 命令不带任何变量名,此时,read 就将该值存储到 REPLY 变量中。
(2)select 命令是一种建立菜单的工具,它提供一组字符串供用户选择,用户不必完整地输入字符串,而只需输入相应的序号进行选择。比如:
select variable in list
do
   shell 命令1
   shell 命令2
   shell 命令3
   ……
   break
done
select 自动将 list 形成有编号的菜单,用户输入序号以后,将该序号所对应 list 中的字符串赋给variable 变量,而序号值则保存到 REPLY 变量中。

5.RANDOM
每次随机产生一个介于 0 到 32767 之间的一个整数。

6. SECONDS
shell 启动的时间(秒)。

7. IFS(Internal Field Seprator)
内部域分隔符,用来拆解读入的变量值。默认的分隔符是空格符(space)、制表符(tab)、换行符(\n)。
$ echo $IFS
直接输出 IFS 只能看到一个空白行,看不到任何东西。
$ echo $IFS | od -b
0000000   012                                                           
0000001
转化为二进制就可以看到了,"040"是空格符,"011"是制表符,"012"是换行符 。

8. PATH
命令的搜索路径。

9. HOME
当前用户的主目录。

参考文献:
1. 《精通 shell 编程(第二版)》

没有评论: