久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

Shell變量的示例分析-創新互聯

這篇文章主要介紹了Shell變量的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

專業領域包括成都做網站、網站制作、成都外貿網站建設商城網站制作、微信營銷、系統平臺開發, 與其他網站設計及系統開發公司不同,創新互聯建站的整合解決方案結合了幫做網絡品牌建設經驗和互聯網整合營銷的理念,并將策略和執行緊密結合,為客戶提供全網互聯網整合方案。


先不要管Shell的版本,來看看Shell 變量,在Shell中有三種變量:系統變量,環境變量,用戶變量。其中用戶變量在編程過程中使用最多,系統變量在對參數判斷和命令返回值判斷會使用,環境變量主要是在程序運行的時候需要設置。

1 系統變量

Shell常用的系統變量并不多,但卻十分有用,特別是在做一些參數檢測的時候。下面是Shell常用的系統變量
表示方法  描述 
$n  $1 表示第一個參數,$2 表示第二個參數 ... 
$#  命令行參數的個數 
$0  當前程序的名稱 
$?  前一個命令或函數的返回碼 
$*  以"參數1 參數2 ... " 形式保存所有參數 
$@  以"參數1" "參數2" ... 形式保存所有參數 
$$  本程序的(進程ID號)PID 
$!  上一個命令的PID 
其中使用得比較多得是 $n $# $0 $? ,看看下面的例子:


代碼如下:


#!/bin/sh
#This file is used to explain the shell system variable.
echo "the number of parameter is $# ";
echo "the return code of last command is $?";
echo "the script name is $0 ";
echo "the parameters are $* ";
echo "/$1 = $1 ; /$2 = $2 ";



下面是運行結果:
-bash-2.05b$ ./chapter2.1.sh winter stlchina
the number of parameter is 2
the return
 code of last command is 0
the script name is ./chapter2.1.sh
the parameters are winter stlchina
$1 = winter ; $2 = stlchina
這個例子太簡單了,一點也不實用,下面來個實用的,如果你看不懂,沒有關系,后面的內容會有詳細解釋。


代碼如下:


#!/bin/sh
if [ $# -ne 2 ] ; then
echo "Usage: $0 string file";
exit 1;
fi
grep $1 $2 ;
if [ $? -ne 0 ] ; then
echo "Not Found \"$1\" in $2";
exit 1;
fi
echo "Found \"$1\" in $2";



上面的例子中使用了$0 $1 $2 $# $? 等變量,下面是程序的解釋:
1.判斷運行參數個數,如果不等于2,顯示使用"用法幫助", 其中 $0 表示就是腳本自己。
2.用grep 在$2 文件中查找$1 字符串。
3.判斷前一個命令運行后的返回值(一般成功都會返回0, 失敗都會返回非0)。
4.如果沒有成功顯示沒找到相關信息,否則顯示找到了。
5.其中/"表示轉義,在"" 里面還需要顯示"號,則需要加上轉義符/" .
下面運行的例子:
./chapter2.2.sh usage chapter2.2.sh
Not Found "usage" in
 chapter2.2.sh
-bash-2.05b$ ./chapter2.2.sh Usage chapter2.2.sh     
echo
 "Usage: $0 string file";
Found "Usage" in
 chapter2.2.sh

2 Shell用戶變量

2.1 基礎
不管系統變量有多少,對于需求來說,總是不夠的。用戶變量是最常用到的變量,使用也十分簡單。

用戶定義的變量必須由字母數字及下劃線組成,并且變量名的第一個字符不能為數字, 與其它UNIX名字一樣,變量名是大小寫敏感的. 對于用戶變量,用戶可按如下方式賦值:

name="Winter"
在引用變量時,需在前面加$符號,用戶也可以在變量間進行相互賦值,如:

name="Winter"
WINTER=$name
echo
 "Hello $WINTER !"

輸出結果應該很清楚:Hello Winter !

這里需要注意一點:變量和'='之間不要有空格,'='和賦值也不要有空格,否則shell不會認為變量被定義。掌握了基本的使用方法,你可以完全開始你的編程工作了。不過有時候需要未雨綢繆,下面介紹用戶變量的一些技巧。

2.2 使用技巧
也可以用變量和其他字符組成新的字,這時可能需要把變量用{}括起,如:

SAT=Satur
echo
 Today is ${SAT}day
輸出結果是: Today is Saturday

有時候為了避免變量名和別的字符產生混淆,你好養成習慣把變量名用{}括起來。

對于未賦值的變量, Shell以空值對待, 用戶也可以用unset命令清除給變量賦的值.看一個例子:


代碼如下:


#!/bin/sh
echo "a=$a" ;
a=2
echo "a=$a" ;
unset a
echo "a=$a" ;



先猜猜結果是什么?
-bash-2.05b$ ./test
.sh
a=
a=2
a=
如果你懂C++,你應該知道有個變量修飾符"const",用于避免程序一不小心對變量進行修改。在shell中,對于用戶變量,你可以使用同樣的修飾符"readonly", 如果我把上面的例子修改成這樣:


代碼如下:


#!/bin/sh
echo "a=$a" ;
#下面增加了readonly
readonly a=2   
echo "a=$a" ;
unset a
echo "a=$a" ;



其結果當然會不一樣了:
-bash-2.05b$ ./test
.sh
a=
a=2
a=2
2.3 shell 中的數組
shell變量中還能設置數組,但是不同的shell版本有不同數組賦值方法,而bourne shell 中不支持數組方式。因此,如果不是十分需要,還是建議你不要使用數組。若你的數據結構十分復雜,必須要使用數組,那么我建議你還是選擇別的語言吧,shell不是萬能的。

shell有兩種賦值方式,第一種是直接用下標賦值:

name[0]="Tom"
name[1]="Tomy"
name[2]="John"
...
另一種方式對于不同的shell版本不一樣。bash中賦值:
[code]
#!/usr/local/bin/bash
name=("Tom" "Tomy" "John")
for i in 0 1 2
do echo $i:${name[$i]} ;
done

[html]
上面兩種賦值方式達到的效果一樣。另外,你看見訪問數組元素的方法了嗎?使用${name[index]}的方式。注意第一行使用的是#!/usr/local/bin/bash, 和以前有些不一樣哦。其輸出結果是:
-bash-2.05b$ ./test
.sh   
0:Tom
1:Tomy
2:John

3 shell 環境變量

shell 環境變量是所有shell 程序都會接受的參數。shell程序運行時,都會接收一組變量,這組變量就是環境變量。常用的環境變量:



名稱描述
PATH命令搜索路徑,以冒號為分隔符.注意與DOS下不同的是, 當前目錄不在系統路徑里
HOME用戶home目錄的路徑名,是cd命令的默認參數
COLUMNS定義了命令編輯模式下可使用命令行的長度
EDITOR默認的行編輯器
VISUAL默認的可視編輯器
FCEDIT命令fc使用的編輯器
HISTFILE命令歷史文件
HISTSIZE命令歷史文件中最多可包含的命令條數
HISTFILESIZE命令歷史文件中包含的較大行數
IFS定義SHELL使用的分隔符
LOGNAME用戶登錄名
MAIL指向一個需要SHELL監視其修改時間的文件.當該文件修改后, SHELL將發消息You hava mail給用戶
MAILCHECKSHELL檢查MAIL文件的周期,單位是秒
MAILPATH功能與MAIL類似.但可以用一組文件,以冒號分隔,每個文件后可跟一個問號和一條發向用戶的消息
SHELLSHELL的路徑名
TERM終端類型
TMOUTSHELL自動退出的時間,單位為秒,若設為0則禁止SHELL自動退出
PROMPT_COMMAND指定在主命令提示符前應執行的命令
PS1主命令提示符
PS2二級命令提示符,命令執行過程中要求輸入數據時用
PS3select的命令提示符
PS4調試命令提示符
MANPATH尋找手冊頁的路徑,以冒號分隔
LD_LIBRARY_PATH尋找庫的路徑,以冒號分隔


這些變量,要關注的最多的就是PATH, 其重要性不要我說了吧?

如果你希望把你定義的變量讓其他所有的shell程序都能使用,也就是定義新的環境變量。你只要使用export關鍵詞就可以了。例如:
export
MY_NAME=Winter
export
PATH=/home/winter/bin:$PATH

上面的程序中,第一行輸出MY_NAME變量,第二行是在環境變量PATH中增加一個路徑/home/winter/bin 。如果你希望這些設置在你登陸unix/linux都有效,你需要把他們加入到你的shell啟動腳本中, 如果是使用bash

~/.bash_profile
其他版本你看一眼就知道了,在你的home目錄下,以"."開頭的文件,一般都會隱藏起來,你需要使用'ls -al'命令來顯示。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Shell變量的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創新互聯網站建設公司,,關注創新互聯行業資訊頻道,更多相關知識等著你來學習!

分享題目:Shell變量的示例分析-創新互聯
當前路徑:http://www.js-pz168.com/article42/gsshc.html

成都網站建設公司_創新互聯,為您提供網站改版建站公司用戶體驗網站導航域名注冊面包屑導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
精品国产一区二区三区四区vr | 99精品欧美一区二区三区小说| 国产高清精品一区二区三区| 亚洲视频电影| 日韩三级中文字幕| 亚洲精品久久久蜜桃| 精品一区二区三区不卡 | 欧美激情一区不卡| 午夜视频在线观看一区二区三区| 成人自拍视频在线观看| 免费观看成人在线| 51午夜精品国产| 亚洲人快播电影网| 国产美女一区二区三区| 久久香蕉综合色| 91精品国产综合久久小美女| 国产精品传媒视频| 国产真实乱子伦精品视频| 国内视频一区| 欧美精品丝袜久久久中文字幕| 中文字幕一区二区视频| 国产精品综合一区二区三区| 麻豆av福利av久久av| 4438亚洲最大| 亚洲一区二区三区四区在线观看| 丁香一区二区三区| 一区二区视频国产| 日本一区二区三区久久久久久久久不| 男男gaygay亚洲| 国产一区二区精品在线| 在线播放91灌醉迷j高跟美女 | 亚洲日本va午夜在线电影| 国产盗摄视频一区二区三区| 欧美日韩喷水| 精品欧美黑人一区二区三区| 日韩高清电影一区| 精品日产一区2区三区黄免费 | 在线电影一区二区三区| 亚洲欧洲精品成人久久奇米网| 国产高清久久久| 亚洲欧洲精品一区二区| 国产日韩精品视频一区| 久久99精品久久久| 欧洲亚洲一区二区| 久久久国际精品| 国产在线精品一区二区三区不卡 | 亚洲免费视频成人| hitomi一区二区三区精品| 91黄色小视频| 一区二区免费视频| 99久久综合狠狠综合久久止| 欧美日韩成人在线一区| 亚洲资源在线观看| 国产精品乱子乱xxxx| 日韩午夜av一区| 蜜桃av噜噜一区| 欧美一区少妇| 欧美国产视频在线| 粉嫩久久99精品久久久久久夜| 在线免费观看成人| 亚洲欧洲性图库| 粗大黑人巨茎大战欧美成人| 欧洲日韩一区二区三区| 亚洲国产一区视频| 久久综合九色欧美狠狠| 国产欧美一区二区三区在线看蜜臀 | 久热国产精品视频一区二区三区| 精品999久久久| 国内精品嫩模私拍在线| 色综合久久中文字幕综合网| 亚洲精品第1页| 国产一区二区不卡视频| 国产亚洲女人久久久久毛片| 丁香婷婷综合网| 91麻豆精品国产91| 看片的网站亚洲| 色诱视频网站一区| 亚洲国产美国国产综合一区二区| 精品一区二区久久久久久久网站| 久久久蜜臀国产一区二区| 国产99一区视频免费| 精品视频资源站| 七七婷婷婷婷精品国产| 亚洲图片都市激情| 亚洲成人免费电影| 品久久久久久久久久96高清| **欧美大码日韩| 国产精品一 二 三| 亚洲国产精品99久久久久久久久| 9i在线看片成人免费| 日韩欧美一区电影| 成人小视频在线| 欧美一区二区在线视频| 狠狠v欧美v日韩v亚洲ⅴ| 欧美日韩亚洲国产综合| 麻豆freexxxx性91精品| 在线观看av一区二区| 喷水一区二区三区| 欧美亚洲国产一区在线观看网站| 麻豆国产91在线播放| 欧美综合亚洲图片综合区| 蜜臀av性久久久久av蜜臀妖精| 一本色道综合亚洲| 蜜臀av性久久久久蜜臀aⅴ| 91精品办公室少妇高潮对白| 麻豆91免费看| 欧美人与z0zoxxxx视频| 国产伦精品一区二区三区免费| 在线播放/欧美激情| 国产91综合网| 欧美成人伊人久久综合网| 成人av在线电影| 国产三级一区二区| 国产精品久久久久久久天堂第1集| 国产精品乱人伦| 久久综合狠狠综合久久综青草| 一区二区三区91| 中文字幕一区二区三区有限公司 | ...xxx性欧美| 日本在线播放一区| 丝袜诱惑亚洲看片| 欧美综合视频在线观看| 国产精品888| 精品欧美一区二区久久| 国产91一区二区三区| 一区二区中文字幕在线| 青青成人在线| 日韩电影一区二区三区四区| 欧美日韩免费在线视频| 成人一级片网址| 久久久久久毛片| 久久综合九九| 日韩av午夜在线观看| 欧美精品aⅴ在线视频| 成人av资源站| 国产精品久久看| 日韩一本精品| 美女精品一区二区| 日韩精品一区二区在线| 国产另类第一区| 亚洲国产裸拍裸体视频在线观看乱了 | 日本不卡视频在线| 欧美日韩国产免费一区二区| 成人动漫一区二区三区| 国产精品久久一卡二卡| 亚洲 日韩 国产第一区| 久久国产精品免费| 精品国产欧美一区二区| 精品蜜桃一区二区三区| 日日嗨av一区二区三区四区| 欧美疯狂做受xxxx富婆| 96成人在线视频| 亚洲韩国精品一区| 666欧美在线视频| caoporn国产精品免费公开| 亚洲图片自拍偷拍| 69成人精品免费视频| 国产成人一区二区三区免费看| 亚洲五月六月丁香激情| 91精品在线一区二区| 国产精品一区二区你懂得| 亚洲第一主播视频| 欧美一区二区高清| 精品日产一区2区三区黄免费 | 日韩成人dvd| 欧美成人综合网站| 欧美一区1区三区3区公司 | 国产乱码一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整| 你懂的网址一区二区三区| 蜜臀久久99精品久久久画质超高清| 欧美xxxxx牲另类人与| 久久一区二区三区欧美亚洲| 久久国产日韩欧美精品| 中国色在线观看另类| 色综合久久99| 91猫先生在线| 日韩avvvv在线播放| 精品粉嫩超白一线天av| 日本高清一区| 粗大黑人巨茎大战欧美成人| 一区二区三区丝袜| 日韩欧美一区二区免费| 日韩福利在线| 成人国产亚洲欧美成人综合网| 亚洲午夜久久久久久久久电影院 | 免费日本视频一区| 国产亚洲精品福利| 91福利精品第一导航| 国产精品日韩欧美一区二区三区| 免费人成在线不卡| 国产精品理伦片| 欧美日韩一区在线| 久久av一区二区三区漫画| 国产乱国产乱300精品| 亚洲激情男女视频| 欧美tk丨vk视频| 伊人久久大香线蕉精品| 99九九视频| 国模娜娜一区二区三区|