Linux 管理 - 变量



Bash 中的变量与任何其他脚本语言类似。语法可能与 Perl、Python 和 Ruby 等语言不同。

我们首先要了解的是 BASH 变量有两种基本类型:全局变量或环境变量以及脚本变量或局部变量。

全局变量或环境变量在所有 shell 和脚本中设置。可以通过 envprintenv 命令显示环境变量 -

bash-3.2# printenv 
SHELL=/bin/bash 
TERM=xterm-256color 
USER=root 
SUDO_USER="rick cardon" 
SUDO_UID=501 
USERNAME=root 
MAIL=/var/mail/root 
PATH=/usr/local/pear/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/ 
PWD=/home/rdc/Desktop 
LANG=en_US.UTF-8

常见语法是使用大写字母表示环境变量,使用小写字母表示局部变量。这些是你脚本中使用的变量,假设该脚本不会设置或更改 Shell 环境变量。

脚本变量或局部变量仅可供当前 shell 访问。

#!/bin/bash
num = 0
while [ $num -lt 100 ]
   do 
   num = $[$num+1] 
   echo $num 
   
   if [ $((num % 10)) = 0 ]; 
      then 
      sleep 5s 
   fi 
done

echo $PATH

上面的脚本会简单地增加到 20,每 5 次迭代暂停 5 秒,然后回显一个环境变量:当前用户路径 -

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
/usr/local/pear/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/opt/
local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

如果你希望你的 shell 外部可以查看一个变量,则必须使用以下 export 命令。

#!/bin/bash
export MY_NEW_GLOBAL = "I am Global"
linux_admin_shell_scripting.htm
广告