红联Linux门户
Linux帮助

设置和引用变量

发布时间:2006-08-11 09:33:21来源:红联作者:cha
  shell 使用环境变量和 shell 变量定义环境。登录 shell 使用环境变量,并将这些变量传递到所有进程和创建的 subshell。仅用户当前的 shell 可以识别 Shell 变量,但这些变量不会被传递到 subshell。

$
  POSIX shell 使用赋值语句和可选的 export 命令设置变量。在所有 shell 中,通过在变量名前加一个货币符号 ($) 来引用变量值。

为变量赋值


  在 POSIX shell 中,可以为变量赋值(或对变量进行设置)。如有必要,还可以创建变量。使用赋值语句可以完成这两项任务:


name=value



  name 表示变量名,value 表示为变量赋的值。name 和 = 之间或 = 和 value 之间不允许有空格。

  在以下示例中,重新设置 shell 提示符 (PS1),直至其显示:


Ready ==>



  如果 PS1 是 shell 变量,则 subshell(通过键入 sh 创建)不会识别新值。如果导出 PS1,PS1 的值将传递到 subshell:

$ PS1="Ready ==> " 设置 shell 变量 PS1。
Ready ==> sh 键入 subshell 名。
$ exit Subshell 现在有缺省提示符;退出到原始 shell。
Ready ==> export PS1 使用 export 设置环境变量。
Ready ==> sh 输入 subshell。
Ready ==> Subshell 识别 PS1 的新值。

Ready ==> exit 退出 subshell。
Ready ==> PS1="$ " 使用 export 设置环境变量。
$ 返回到正常的工作环境。


引用变量的值(参数替换)


  三种 shell 都使用参数替换引用变量值。参数替换表示用变量值替换变量名。如果在变量名前加一个货币符号 ($),即发生参数替换。

  例如,在上文我们已了解到如何使用命令 echo $SHELL 确定登录 shell:

$ echo SHELL 由于省略 $,将回显单词 SHELL。
SHELL
$ echo $SHELL 如果加上 $,将回显 SHELL 的值。
/usr/bin/sh

  echo $SHELL 命令使用参数替换。由于变量名前有货币符号 ($),所以 shell 将名为 SHELL 的环境变量值回显在 echo 命令下。
文章评论

共有 2 条评论

  1. ly_chaojilong 于 2009-09-08 13:32:18发表:

    收藏了

  2. xiazhouquan 于 2009-09-08 12:10:36发表:

    谢谢分享了