热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

当前位置 :| 主页>Linux教程>Shell开发>

var=value?export 前後差在哪?关于变量替换

来源: 作者: 时间:2008-05-16 Tag: 点击:
var=value?export 前後差在哪?

這次讓我們暫時丟開 command line ,先來了解一下 bash 變量(variable)吧...

所謂的變量,就是就是利用一個特定的"名稱"(name)來存取一段可以變化的"值"(value)。

*設定(set)*
在 bash 中,你可以用 "=" 來設定或重新定義變量的內容:
name=value
在設定變量的時侯,得遵守如下規則:
* 等號左右兩邊不能使用區隔符號(IFS),也應避免使用 shell 的保留字元(meta charactor)。
* 變量名稱不能使用 $ 符號。
* 變量名稱的第一個字母不能是數字(number)。
* 變量名稱長度不可超過 256 個字母。
* 變量名稱及變量值之大小寫是有區別的(case sensitive)。

如下是一些變量設定時常見的錯誤:
A= B :不能有 IFS
1A=B :不能以數字開頭
$A=B :名稱不能有 $
a=B :這跟 a=b 是不同的
如下則是可以接受的設定:
A=" B" :IFS 被關閉了 (請參考前面的 quoting 章節)
A1=B :並非以數字開頭
A=$B :$ 可用在變量值內
This_Is_A_Long_Name=b :可用 _ 連接較長的名稱或值,且大小寫有別。

*變量替換(substitution)*
Shell 之所以強大,其中的一個因素是它可以在命令行中對變量作替換(substitution)處理。
在命令行中使用者可以使用 $ 符號加上變量名稱(除了在用 = 號定義變量名稱之外),
將變量值給替換出來,然後再重新組建命令行。
比方:


[Copy to clipboard] [ - ]
CODE:
$ A=ls
$ B=la
$ C=/tmp
$ $A -$B $C

(注意:以上命令行的第一個 $ 是 shell prompt ,並不在命令行之內。)
必需強調的是,我們所提的變量替換,只發生在 command line 上面。(是的,讓我們再回到 command line 吧﹗)
仔細分析最後那行 command line ,不難發現在被執行之前(在輸入 CR 字符之前),
$ 符號會對每一個變量作替換處理(將變量值替換出來再重組命令行),最後會得出如下命令行:


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册