最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell編程之Shell變量學(xué)習總結(jié)

 更新時間:2014年03月05日 10:53:05   作者:  
這篇文章主要介紹了Shell腳本編程中Shell變量的學(xué)習總結(jié),需要的朋友可以參考下

一、變量操作

A.變量顯示、打印
語法:echo $var
B.變量設(shè)置
語法:var=value

變量的設(shè)置規(guī)則:
1.變量兩端不能直接接空格符
2.變量名稱只能是因為字母與數(shù)字,但開頭不能使數(shù)字
3.雙引號內(nèi)的特殊字符如$等,保持原本特性

復(fù)制代碼 代碼如下:
[root@bogon ~]# var="lang is $LANG"
[root@bogon ~]# echo %var
root@bogon ~]# echo $var
lang is zh_CN.UTF-8

1. 單引號內(nèi)的特殊字符則僅為一般字符
復(fù)制代碼 代碼如下:
[root@bogon ~]#
[root@bogon ~]# var='lang is $LANG';echo $var
lang is $LANG

2. 在一串命令中,還需要通過其他命令提供的信息,可用單引號‘命令'或&(命令),舉例:指令1在執(zhí)行的過程中需要先知道指令2的的值,但是指令1,2在一串指令中
復(fù)制代碼 代碼如下:
[root@bogon ~]# uname -r
2.6.18-371.el5
[root@bogon ~]# cd /lib/modules/$(uname -r)/kernel
[root@bogon kernel]#

3. 變量的累加
復(fù)制代碼 代碼如下:
[root@bogon kernel]# var=${var}yes
[root@bogon kernel]# echo $var
lang is $LANGyes

4. 數(shù)組變量設(shè)置與讀取
復(fù)制代碼 代碼如下:
[root@bogon ~]# array[1]=a
[root@bogon ~]# array[2]=b
[root@bogon ~]# array[3]=c
[root@bogon ~]# echo ${array[1]}
a
[root@bogon ~]# echo ${array[2]}

[root@bogon ~]# echo ${array[3]}
c

C.取消變量(unset)
語法: unset var

D.變量查看(set)
語法:set

比較重要的幾個自定義變量
HISTFILE:歷史記錄存儲位置
MAILCHECK:多少秒掃描次郵箱,查看是否有新郵件
PS1:提示符設(shè)置
$:目前這個shell的PID
?:剛才執(zhí)行完命令的回傳碼。0為正確,非0為錯誤

舉例:

復(fù)制代碼 代碼如下:

比較重要的幾個自定義變量
HISTFILE:歷史記錄存儲位置
MAILCHECK:多少秒掃描次郵箱,查看是否有新郵件
PS1:提示符設(shè)置
$:目前這個shell的PID
?:剛才執(zhí)行完命令的回傳碼。0為正確,非0為錯誤

E.變量鍵盤讀取(read)
語法:read [-pt] var
選項與參數(shù):
-p:后可跟提示信息
-t:后跟等待輸入的描述

舉例:

復(fù)制代碼 代碼如下:

[plain] view plaincopyprint?
[root@bogon ~]# read atest 
this is a test 
[root@bogon ~]# echo $atest 
this is a test 
[root@bogon ~]# read -p "please input.. " attest   
please input.. hello world      =>提示信息 
[root@bogon ~]# echo $atest 
hello world 
[root@bogon ~]# read -p "please input.. " -t 5  atest 
please input..  =>5秒未輸入回到命令行模式 
[root@bogon ~]#  
[root@bogon ~]# echo $atest 
hello world

F.變量聲明(declare)
語法:declare [-aixr] var
選項與參數(shù)
declare后不接任何內(nèi)容,代表查詢所有變量,作用和set一致
-a  :將后面名為 variable的變量定義成為數(shù)組 (array)類型
-i  :將后面名為 variable的變量定義成為整數(shù)數(shù)字 (integer)類型
-x  :用法與 export一樣,就是將后面的 variable變成環(huán)境變量;
+x :將環(huán)境變量變?yōu)樽远x變量
-r  :將變量配置成為 readonly類型,該變量不可被更改內(nèi)容,也不能 unset(需要注銷后再登陸才能變回)

舉例:

復(fù)制代碼 代碼如下:
[plain] view plaincopyprint?
[root@bogon ~]# echo $sum 
100+50+10 =>默認當做字符串處理 
[root@bogon ~]# declare -i sum=100+50+10  
[root@bogon ~]# echo $sum 
160 =>聲明為int 因此可以做加法 
[root@bogon ~]# declare -x sum 
[root@bogon ~]# export | grep sum 
declare -ix sum="160" =>查詢到是環(huán)境變量 
[root@bogon ~]# declare +x sum 
[root@bogon ~]# export | grep sum= >查詢不到是環(huán)境變量 
[root@bogon ~]# declare -r sum;sum=test 
bash: sum: readonly variable =>只讀允許修改 

G.變量內(nèi)容刪除
語法
${var#/key}:從前往后刪除符合key最短的那一個
${var##/key}:從前往后刪除符合key最長的那一個
${var%/key}:從后往前刪除符合key最短的那一個
${var%%/key}:從后往前刪除符合key最短的那一個

舉例:${var#/key}

復(fù)制代碼 代碼如下:
[plain] view plaincopyprint?
[root@bogon ~]# path=${PATH};echo $path 
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin 
[root@bogon ~]# echo ${path#/*:}        =>key為*.(*為通配符) 
/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin 


舉例:${var##/key}
復(fù)制代碼 代碼如下:
[plain] view plaincopyprint?
[root@bogon ~]# path=${PATH};echo $path 
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin 
[root@bogon ~]# echo ${path##/*:} 
/root/bin 

H.變量內(nèi)容替換
語法:
${var/舊字符串/新字符串}:替換第一個滿足條件的字符串
${var//舊字符串/新字符串}:替換所有滿足條件的字符串
舉例:${var/舊字符串/新字符串}

復(fù)制代碼 代碼如下:
[plain] view plaincopyprint?
root@bogon ~]# path=${PATH};echo $path 
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin 
[root@bogon ~]# echo ${path/sbin/SBIN} 
/usr/kerberos/SBIN:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin 


舉例:${var//舊字符串/新字符串}
復(fù)制代碼 代碼如下:
[plain] view plaincopyprint?
[root@bogon ~]# path=${PATH};echo $path 
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin 
[root@bogon ~]# echo ${path//sbin/SBIN} 
/usr/kerberos/SBIN:/usr/kerberos/bin:/usr/local/SBIN:/usr/local/bin:/SBIN:/bin:/usr/SBIN:/usr/bin:/usr/X11R6/bin:/root/bin 

二、環(huán)境變量
普通變量可以理解為局部變量,環(huán)境變量可以理解為全局變量,登陸成功獲得的bash shell就是一個進程,在此情況下再去打開一個新SHELL就是他的子進程,子進程是無法獲取父進程的自定義變量,但是可以獲取父進程的環(huán)境變量

A.環(huán)境變量導(dǎo)出(export )
語法:export  var

B.環(huán)境變量查看(env )

語法:env

比較重要的幾個環(huán)境變量
HOME:代表用戶的主文件夾
SHELL:代表目前使用的shell是哪個程序,我現(xiàn)在使用的是/bin/bash
HISTSIZE:歷史記錄最大存儲條數(shù)
MAIL:mail命令系統(tǒng)收信時,系統(tǒng)會讀取的信箱文件
PATH:執(zhí)行文件查找路徑
LANG:語系信息
RANDOM:隨機數(shù)變量(0~32767)

三、提示符的設(shè)置(PS1)
變量PS1='[\u@\h \W]\$ '記錄了命令提示符的顯示格式 [root@bogon ~]#

符號意義
\d :可顯示出[星期月日]的日期格式,如:"Mon Feb 2"
\H :完整的主機名。
\h :僅取主機名在第一個小數(shù)點之前的名字
\t :顯示時間,為 24小時格式的[HH:MM:SS]
\T :顯示時間,為 12小時格式的[HH:MM:SS]
\A :顯示時間,為 24小時格式的[HH:MM]
\@ :顯示時間,為 12小時格式的[am/pm]樣式
\u :目前使用者的賬號名稱,如[root];
\v :BASH的版本信息,如鳥哥的測試主板本為 3.2.25(1),僅取[3.2]顯示
\w :完整的工作目錄名稱,由根目錄寫起的目錄名稱。但家目錄會以 ~取代;
\W :利用 basename函數(shù)取得工作目錄名稱,所以僅會列出最后一個目錄名。
\# :下達的第幾個命令。
\$ :提示字符,如果是 root時,提示字符為 #,否則就是 $

舉例:

復(fù)制代碼 代碼如下:
[root@bogon ~]# PS1='[\u@\h\A \W \#]\$ '
[root@bogon23:45 ~ 82]#

相關(guān)文章

  • shell腳本自動安裝jdk的方法示例

    shell腳本自動安裝jdk的方法示例

    這篇文章主要介紹了shell腳本自動安裝jdk的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-12-12
  • Linux paste命令用法匯總

    Linux paste命令用法匯總

    paste命令是linux下的一個文件管理命令,paste命令可以把每個文件以列對列的方式,然后一列列地加以合并,也就是合并兩個文件,這篇文章主要介紹了Linux paste命令使用方法,感興趣的朋友一起看看吧
    2022-12-12
  • 常用Shell命令集合和使用技巧(推薦)

    常用Shell命令集合和使用技巧(推薦)

    這篇文章主要介紹了最常用Shell命令集合和使用技巧,本文分場景通過實例講解給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 如何解決jenkins 執(zhí)行shell腳本 sh: ... not found的問題

    如何解決jenkins 執(zhí)行shell腳本 sh: ... not f

    這篇文章主要介紹了如何解決jenkins 執(zhí)行shell腳本 sh: ... not found的問題,具有很好的參考價值,希望對大家有所幫助。
    2023-06-06
  • Shell腳本read用法實現(xiàn)

    Shell腳本read用法實現(xiàn)

    本文主要介紹了Shell腳本read用法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-01-01
  • shell grep 查找進程的小技巧

    shell grep 查找進程的小技巧

    大部分人在寫Shell 過濾進程的時候 都會使用 grep 在 ps aux 的輸出結(jié)果中查找指定的進程,但此時也會把 grep 進程也顯示出來
    2013-01-01
  • linux中批量修改文件名的腳本代碼

    linux中批量修改文件名的腳本代碼

    linux中批量修改文件名的腳本代碼,主要是使用了rename,結(jié)合shell,喜歡的朋友可以參考下
    2013-01-01
  • Bash Shell字符串操作小結(jié)

    Bash Shell字符串操作小結(jié)

    這篇文章主要介紹了Bash Shell字符串操作總結(jié),包含取長度、截取、查找位置、替換等等,需要的朋友可以參考下
    2014-05-05
  • Shell如何遍歷包含空格的文本詳解

    Shell如何遍歷包含空格的文本詳解

    這篇文章主要給大家介紹了關(guān)于Shell如何遍歷包含空格的文本的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2021-04-04
  • 一天一個shell命令 linux好管家-進程-ps命令詳解

    一天一個shell命令 linux好管家-進程-ps命令詳解

    這篇文章主要介紹了一天一個shell命令 linux好管家-進程-ps命令詳解 ,需要的朋友可以參考下
    2016-06-06

最新評論

海原县| 常熟市| 永靖县| 突泉县| 四川省| 富民县| 明光市| 嵊州市| 旬邑县| 泰和县| 武夷山市| 临江市| 深圳市| 巍山| 利辛县| 老河口市| 灵寿县| 青川县| 托克逊县| 惠水县| 日土县| 红河县| 察雅县| 廉江市| 望谟县| 大安市| 台南市| 云阳县| 大足县| 长春市| 和静县| 蓬溪县| 绥芬河市| 山东省| 高雄市| 九龙县| 固镇县| 拉孜县| 高邮市| 商南县| 木里|