shell變量

shell執(zhí)行

#!/bin/bash ? ?#shebang指定解釋器

執(zhí)行方式

lang@liang:~/linux/shell$ chmod u+x test.sh
lang@liang:~/linux/shell$ ./test.sh

lang@liang:~/linux/shell$ /bin/bash ./test.sh

lang@liang:~/linux/shell$ . ./test.sh

lang@liang:~/linux/shell$ source ./test.sh

對(duì)比,前兩種方式執(zhí)行方式實(shí)質(zhì)一樣,后兩種實(shí)質(zhì)相同

shell執(zhí)行過程解釋:

lang@liang:~/linux/shell$ ls

1.當(dāng)前shell ? fork產(chǎn)生子進(jìn)程,子進(jìn)程exec執(zhí)行l(wèi)s.

2.父進(jìn)程(shell) wait等待子進(jìn)程執(zhí)行l(wèi)s(exec)

3.子進(jìn)程運(yùn)行成功或者終止,父進(jìn)程恢復(fù)運(yùn)行.

對(duì)于后兩種方式 ? . ? ./ls ? ? ?source ls

父進(jìn)程直接在當(dāng)前shell下執(zhí)行命令,然后返回

其他問題:

將命令用(),引起來(lái),那么shell 會(huì)直接fork出子shell來(lái)執(zhí)行()中的命令.且可以多個(gè)命令;分割.

cd .. ; ls -l

特別強(qiáng)調(diào)

因?yàn)閟hell默認(rèn)執(zhí)行是fork--exec執(zhí)行命令.

那么,我們?cè)谀_本中的cd .. 等改變狀態(tài)的命令影響的只是子進(jìn)程環(huán)境,并不改變父進(jìn)程.

此時(shí),如果有需求,那么.可以以 ?source執(zhí)行 ?腳本

shell變量

命令

env

set

printenv

打印當(dāng)前環(huán)境變量.

本地變量,只存在于當(dāng)前shell,set命令顯示當(dāng)前shell定義的所有變量(本地變量以及環(huán)境變量)

shell中定義本地變量

VARNAME=value

export VARNAME ?將本地變量導(dǎo)出為環(huán)境變量

unset VARNAME 刪除本地變量或者環(huán)境變量

變量引用

shell變量都是字符串.對(duì)變量的引用使用$符號(hào).

字符串拼接能力

lang@liang:~/linux/shell$ echo $SHELL

/bin/bash

lang@liang:~/linux/shell$ echo $SHELLaaa

lang@liang:~/linux/shell$ echo ${SHELL}aaa

/bin/bashaaa

變量名代換* ?? []

通配符 * :匹配0或多個(gè)任意字符

?:匹配一個(gè)任意字符

[若干字符]:匹配[]中的任意一個(gè)字符的一次出現(xiàn)

命令帶換: ` ?或者 $()

lang@liang:~/linux/shell$ DATE=`date`

lang@liang:~/linux/shell$ echo $DATE

2016年 08月 15日 星期一 19:29:23 CST

lang@liang:~/linux/shell$ DATE=$(date)

lang@liang:~/linux/shell$ echo $DATE

2016年 08月 15日 星期一 19:30:20 CST

轉(zhuǎn)義字符

lang@liang:~/linux/shell$ touch \$\ \$

lang@liang:~/linux/shell$ ll

-rw-rw-r-- 1 lang lang? ? 0 8月? 15 19:32 $ $

創(chuàng)建文件名 以 - ?開頭時(shí)可以如下處理

lang@liang:~/linux/shell$ touch ./-hell

lang@liang:~/linux/shell$ ll ./-hell

-rw-rw-r-- 1 lang lang 0 8月? 15 19:32 ./-hell

lang@liang:~/linux/shell$ touch -- -lll

lang@liang:~/linux/shell$ ll

-rw-rw-r-- 1 lang lang? ? 0 8月? 15 19:35 -lll

單引號(hào)

shell腳本中單引號(hào)都可以界定字符串.而非字符,shell中單引號(hào)內(nèi)的所有字符保持字面值.

雙引號(hào)

雙引號(hào)用于保持引號(hào)內(nèi)suuoyou字符的字面值.(回車也不例外).除了以下

$變量值

``仍然表示命令替換

\$表示$的字面值

\代表轉(zhuǎn)義.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末车海,一起剝皮案震驚了整個(gè)濱河市坤邪,隨后出現(xiàn)的幾起案子缀壤,更是在濱河造成了極大的恐慌售滤,老刑警劉巖邻奠,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡仗扬,警方通過查閱死者的電腦和手機(jī)斋射,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門育勺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人罗岖,你說我怎么就攤上這事涧至。” “怎么了桑包?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵南蓬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我哑了,道長(zhǎng)蓖康,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任垒手,我火速辦了婚禮蒜焊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘科贬。我一直安慰自己泳梆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布榜掌。 她就那樣靜靜地躺著优妙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪憎账。 梳的紋絲不亂的頭發(fā)上套硼,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音胞皱,去河邊找鬼邪意。 笑死,一個(gè)胖子當(dāng)著我的面吹牛反砌,可吹牛的內(nèi)容都是我干的雾鬼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宴树,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼策菜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤又憨,失蹤者是張志新(化名)和其女友劉穎翠霍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蠢莺,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壶运,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浪秘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡埠况,死狀恐怖耸携,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辕翰,我是刑警寧澤夺衍,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站喜命,受9級(jí)特大地震影響沟沙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壁榕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一矛紫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧牌里,春花似錦颊咬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至态辛,卻和暖如春麸澜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奏黑。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工炊邦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人熟史。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓铣耘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親以故。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜗细,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 本文轉(zhuǎn)載自Hello,Barry的shell變量詳解1 shell變量基礎(chǔ)shell變量是一種很“弱”的變量,默認(rèn)...
    hchencoder閱讀 344評(píng)論 0 2
  • Ubuntu的發(fā)音 Ubuntu缎岗,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音白粉。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,261評(píng)論 9 467
  • 定義變量 定義變量時(shí)鸭巴,變量名不加美元符號(hào)($眷细,PHP語(yǔ)言中變量需要),如: 注意鹃祖,變量名和等號(hào)之間不能有空格溪椎,這可...
    楓海閱讀 214評(píng)論 0 1
  • 變量的定義 注意,變量名和等號(hào)之間不能有空格恬口,這可能和你熟悉的所有編程語(yǔ)言都不一樣校读。同時(shí),變量名的命名須遵循如下規(guī)...
    孤月環(huán)舟閱讀 260評(píng)論 0 0
  • 變量定義 定義變量時(shí),變量名不加美元符號(hào)祖能,如:variableName="value" 變量名和等號(hào)之間不能有空格...
    zjunchao閱讀 395評(píng)論 0 0