婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > shell 腳本中常用的內(nèi)置變量(Bash 內(nèi)置變量)

shell 腳本中常用的內(nèi)置變量(Bash 內(nèi)置變量)

熱門標(biāo)簽:地圖標(biāo)注審核周期 如何申請400的電話呀 AI智能電銷機器人壞處 蘭州電銷機器人加盟 黑暗之魂3地圖標(biāo)注 電話機器人對家居行業(yè)幫助大嗎 沈陽ai電銷智能機器人 合肥電銷外呼系統(tǒng)供應(yīng)商 電商外呼系統(tǒng)排名

$FUNCNAME、$LINENO、$PWD

FUNCNAMELINENO 變量經(jīng)常用于腳本的調(diào)試

FUNCNAME 表示當(dāng)前函數(shù)的名字,作用范圍僅限函數(shù)中使用,在函數(shù)外無值

LINENO 表示當(dāng)前所在腳本中變量出現(xiàn)在的行號

PWD 表示當(dāng)前目錄, 對應(yīng)于 pwd命令

現(xiàn)有個腳本 a.sh 內(nèi)容如下

#!/bin/bash

   testa()
  {
    echo 'func='$FUNCNAME,$LINENO
   }
  testa
 
  echo 'lineno:'$LINENO
  echo 'xx:'$FUNCNAME
  echo 'curpath:'$PWD

執(zhí)行 ./a.sh 命令, 輸出如下

[tt@ecs-centos-7 ~]$ ./a.sh
func=testa,6
lineno:12
xx:
curpath:/home/tt

testa 函數(shù)中 FUNCNAME 變量值是 testa,也即函數(shù)名字,在函數(shù)外部無值

LINENO 變量無論是在函數(shù)中還是函數(shù)外,都表示當(dāng)前所在的行號

$$、$PPID

這兩個變量依次表示當(dāng)前進程ID和父進程ID

現(xiàn)有 a.sh 腳本,內(nèi)容如下

sleep 20 睡眠語句是為了讓執(zhí)行腳本進程暫緩?fù)顺觯诹硪粋€終端中驗證輸出的結(jié)果

#!/bin/bash
#set -u

echo 'cur pid:'$$
echo 'parent pid:'$PPID
sleep 20

在當(dāng)前終端執(zhí)行 ./a.sh,結(jié)果如下

[tt@ecs-centos-7 ~]$ ./a.sh 
cur pid:13095
parent pid:12982

在執(zhí)行a.sh的腳本進程退出之前,打開另一個終端,執(zhí)行 ps -o pid,ppid,time,cmd -p 12982,13095 命令,結(jié)果如下

[tt@ecs-centos-7 ~]$ ps -o pid,ppid,time,cmd -p 12982,13095
  PID  PPID     TIME CMD
12982 12981 00:00:00 -bash
13095 12982 00:00:00 /bin/bash ./a.sh

從上面的結(jié)果可以看出, 執(zhí)行 ./a.sh 命令之后,$$ 變量表示的是 執(zhí)行a.sh腳本的進程ID 13095 ,而 12982 是它的父進程ID,也即是 PPID變量的值,它是當(dāng)前bash的實例

$0,$1,$2...$n、$#

$# 表示從命令行傳入腳本的參數(shù)數(shù)量

$0,$1,$2...$n 是從命令行傳遞到腳本的參數(shù) $0 是腳本本身的名字
$1 是第一個參數(shù)
$2 是第二個參數(shù),依此類推
$n 是第n個參數(shù)

第十個參數(shù)及以后的參數(shù)必須要用大括號括起來,例如: ${10}、${11}、${12} 依次表示第十個變量、第十一個變量、第十二個變量

$*、$@

都表示位置參數(shù),不過它們之間也有些不同點

使用 $* 時,如果加上雙引號,即 $* 的形式,那所有位置的參數(shù)會被當(dāng)作一個單詞來處理,如果不包含雙引號,即 $* 的形式,則每個位置的參數(shù)都被當(dāng)作一個獨立的單詞來處理

而對于 $@,無論是否加上雙引號,每個位置的參數(shù)都被當(dāng)作一個獨立的單詞來處理

現(xiàn)有c.sh, 內(nèi)容如下

#!/bin/bash

cnt=1
echo 'test 1111'

for var in "$*"
do
   echo "arg$cnt="$var
   let "cnt+=1"
done
echo

cnt=1
echo 'test 2222'
for var in $*
do
  echo "arg$cnt="$var
  let "cnt+=1"
done
echo

cnt=1
echo 'test 3333'
for var in "$@"
do
  echo "arg$cnt="$var
  let "cnt+=1"
done
echo

cnt=1
echo "test 4444"
for var in $@
do
 echo "arg$cnt="$var
 let "cnt+=1"
done

執(zhí)行 ./c.sh 1 2 3,結(jié)果如下

[root@ecs-centos-7 ~]# ./c.sh 1 2 3
test 1111
arg1=1 2 3

test 2222
arg1=1
arg2=2
arg3=3

test 3333
arg1=1
arg2=2
arg3=3

test 4444
arg1=1
arg2=2
arg3=3

從上面的結(jié)果可以看出,對于 $* 來說,加了雙引號之后所有位置參數(shù)就會被視為一個單詞

對于 $@ 來說,是否加雙引號,結(jié)果都是一樣的

所以,僅在使用雙引號時,$* 和 $@ 才會有差異

$?

命令、函數(shù)或者腳本的退出狀態(tài),在判斷命令的執(zhí)行結(jié)果或者函數(shù)的調(diào)用結(jié)果時很有用處

現(xiàn)有 e.shf.sh 測試腳本

e.sh 腳本

#!/bin/bash

test_func()
{
  if [[ $1 -eq 10 ]]; then
        return 5
  fi
  return 6
}


if [ $# -ge 1 ]; then
   name="$1"
   shift 1
   $name "$@"
fi

f.sh 腳本

#!/bin/bash


sh e.sh test_func 3
echo 'exit code1:'$?

sh e.sh test_func 10
echo 'exit code2:'$?

test -f $PWD/xx.txt
echo 'exit code3:'$?

test -f $PWD/e.sh
echo 'exit code4:'$?

執(zhí)行 ./f.sh 命令,結(jié)果如下

[root@ecs-centos-7 ~]# ./f.sh
exit code1:6
exit code2:5
exit code3:1
exit code4:0

腳本 e.shtest_func 函數(shù)功能是:當(dāng)參數(shù)等于10時,退出狀態(tài)為 5,否則為 6

sh e.sh test_func 3 命令會調(diào)用 e.sh 腳本中的 test_func函數(shù),傳入?yún)?shù)是 3,所以退出狀態(tài)為 6,同理可知, sh e.sh test_func 10 命令的退出狀態(tài)是 5

在Linux中,命令執(zhí)行成功,退出狀態(tài)為 0 ,失敗則為非 0

test -f $PWD/xx.txt 命令是檢查當(dāng)前目錄是否存在 xx.txt 文件,因當(dāng)前目錄并不存在 xx.txt,所以命令執(zhí)行失敗,退出狀態(tài)為非 0

由于e.sh 存在于當(dāng)前目錄下,所以 test -f $PWD/e.sh 命令執(zhí)行成功,退出狀態(tài)為 0

$IFS

此變量用于 Bash 識別字符串或單詞邊界,默認值是空格,腳本中根據(jù)需要可以修改此變量的值

現(xiàn)有 b.sh腳本,內(nèi)容如下

#!/bin/bash

va="a:b:c"
vb="x-y-z"
vc="e,f,g"

IFS=":"
echo 'va:'$va
echo 'vb:'$vb
echo 'vc:'$vc

echo

IFS="-"
echo 'va:'$va
echo 'vb:'$vb
echo 'vc:'$vc

echo

IFS=","
echo 'va:'$va
echo 'vb:'$vb
echo 'vc:'$vc

執(zhí)行 ./b.sh 結(jié)果如下

[tt@ecs-centos-7 ~]$ ./b.sh
va:a b c
vb:x-y-z
vc:e,f,g

va:a:b:c
vb:x y z
vc:e,f,g

va:a:b:c
vb:x-y-z
vc:e f g

從結(jié)果可以看出,當(dāng) $IFS: 時,字符串 "a:b:c"被解析成 a b c

當(dāng) $IFS- 時,字符串 "x-y-z"被解析成 x y z

當(dāng) $IFS, 時,字符串 "e,f,g"被解析成 e f g

$HOME、$USER、$UID、$GROUPS

HOME:   用戶home目錄
USER:   當(dāng)前用戶名
UID:    當(dāng)前用戶ID
GROUPS: 當(dāng)前用戶組ID
[tt@ecs-centos-7 ~]$ echo $HOME
/home/tt
[tt@ecs-centos-7 ~]$ echo $USER
tt
[tt@ecs-centos-7 ~]$ echo $UID
1003
[tt@ecs-centos-7 ~]$ echo $GROUPS
1003

$HOSTTYPE、$MACTYPE、$OSTYPE

這些變量都表示系統(tǒng)硬件

[tt@ecs-centos-7 ~]$ echo $HOSTTYPE
x86_64
[tt@ecs-centos-7 ~]$ echo $MACHTYPE
x86_64-redhat-linux-gnu
[tt@ecs-centos-7 ~]$ echo $OSTYPE
linux-gnu

小結(jié)

本文介紹了一些常用的 Bash 內(nèi)置變量,對于一些生僻或者平常很少用到的變量可以自行查閱相關(guān)資料

以上就是shell 腳本中常用的內(nèi)置變量(Bash 內(nèi)置變量)的詳細內(nèi)容,更多關(guān)于shell內(nèi)置變量的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 用內(nèi)置變量調(diào)試shell腳本的方法
  • 處理Shell腳本中帶有空格的變量(bash腳本)
  • Linux bash Shell中的變量類型詳解

標(biāo)簽:黔南 黔南 河池 淮南 常州 通遼 隴南 河北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell 腳本中常用的內(nèi)置變量(Bash 內(nèi)置變量)》,本文關(guān)鍵詞  shell,腳本,中常,用的,內(nèi)置,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《shell 腳本中常用的內(nèi)置變量(Bash 內(nèi)置變量)》相關(guān)的同類信息!
  • 本頁收集關(guān)于shell 腳本中常用的內(nèi)置變量(Bash 內(nèi)置變量)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日本不卡视频| 欧美精品18+| 欧美乱妇23p| 亚洲成人av免费| 欧美三级视频在线| 亚洲国产中文字幕在线视频综合| 欧美性极品少妇| 日韩激情中文字幕| 精品国产一区二区三区四区四| 国产在线精品不卡| 欧美国产97人人爽人人喊| 99这里都是精品| 性做久久久久久免费观看| 日韩一区二区三区高清免费看看| 久久福利资源站| 亚洲欧美在线高清| 欧美午夜精品免费| 精品伊人久久久久7777人| 国产亚洲成av人在线观看导航| 成人一区二区三区| 亚洲v中文字幕| 26uuu精品一区二区| 91在线观看免费视频| 日本午夜一本久久久综合| 久久精品一区二区三区四区| 色天天综合色天天久久| 久久精品国产精品亚洲精品| 自拍偷自拍亚洲精品播放| 欧美一区永久视频免费观看| 不卡欧美aaaaa| 美女脱光内衣内裤视频久久影院| 国产午夜精品一区二区三区嫩草| 色偷偷一区二区三区| 美女尤物国产一区| 亚洲综合色婷婷| 国产欧美精品一区二区三区四区| 7777精品伊人久久久大香线蕉完整版 | 波多野结衣中文字幕一区| 亚洲第一电影网| 日韩美女精品在线| 国产日韩视频一区二区三区| 91麻豆精品国产91久久久更新时间 | 欧美日韩不卡一区二区| 99精品热视频| 成人精品gif动图一区| 日韩成人一级片| 亚洲高清中文字幕| 亚洲老妇xxxxxx| 中文字幕一区二区三区不卡在线| 久久久激情视频| 久久女同互慰一区二区三区| 日韩一区二区在线播放| 欧美另类z0zxhd电影| 色播五月激情综合网| 91视频一区二区三区| 国产91丝袜在线播放0| 国产高清久久久久| 国产成人鲁色资源国产91色综| 国产综合成人久久大片91| 日韩激情在线观看| 丝袜美腿亚洲综合| 三级不卡在线观看| 天天亚洲美女在线视频| 亚洲自拍都市欧美小说| 亚洲狠狠爱一区二区三区| 亚洲一区二区高清| 午夜激情一区二区| 免费三级欧美电影| 国产一区二区精品在线观看| 国产成人午夜视频| 91麻豆国产福利在线观看| 色丁香久综合在线久综合在线观看| 91免费视频观看| 欧美性色欧美a在线播放| 欧美精品日韩综合在线| 精品国产乱码久久久久久老虎 | 成人一区二区三区视频在线观看| 国产91丝袜在线18| 色噜噜狠狠成人网p站| 欧美日韩国产在线播放网站| 日韩一区二区电影网| 久久久久久久久伊人| 成人欧美一区二区三区白人| 亚洲不卡av一区二区三区| 久久91精品国产91久久小草| 成人ar影院免费观看视频| 在线视频中文字幕一区二区| 欧美成人伊人久久综合网| 国产精品美女一区二区在线观看| 亚洲国产日韩a在线播放| 精一区二区三区| eeuss鲁片一区二区三区| 欧美一区二区三区思思人| 欧美激情一区三区| 青青草国产精品97视觉盛宴| 本田岬高潮一区二区三区| 欧美日韩精品欧美日韩精品一 | 亚洲精品亚洲人成人网| 精品在线观看免费| 欧洲精品在线观看| 久久久久亚洲综合| 五月激情六月综合| bt欧美亚洲午夜电影天堂| 欧美大片在线观看一区二区| 中文字幕五月欧美| 国产一区二区福利视频| 69堂精品视频| 亚洲综合丁香婷婷六月香| 大美女一区二区三区| 日韩精品中午字幕| 石原莉奈在线亚洲三区| 91免费版在线| 国产精品欧美久久久久一区二区| 精一区二区三区| 欧美系列一区二区| 中文字幕亚洲在| 成人性生交大片免费看在线播放| 日韩视频在线你懂得| 午夜视频久久久久久| 99vv1com这只有精品| 欧美国产丝袜视频| 国产精品一卡二卡| 亚洲精品在线网站| 精品一区二区三区久久久| 欧美丰满一区二区免费视频| 夜夜精品视频一区二区| 成人亚洲精品久久久久软件| 久久久精品影视| 国产一区二区不卡老阿姨| 欧美成人欧美edvon| 麻豆免费精品视频| 日韩免费高清电影| 免费成人在线观看视频| 欧美一区午夜视频在线观看| 日韩成人午夜电影| 日韩精品在线网站| 国产一区二区在线看| 欧美精品一区二区精品网| 美女视频黄免费的久久| 欧美乱熟臀69xxxxxx| 五月天久久比比资源色| 91久久精品国产91性色tv| 综合激情成人伊人| 欧美偷拍一区二区| 午夜精彩视频在线观看不卡| 欧美猛男超大videosgay| 一区二区在线观看视频| 在线观看日产精品| 亚洲少妇30p| 在线观看区一区二| 亚洲成人av免费| 久久日一线二线三线suv| 国产专区综合网| 日韩视频一区在线观看| 国产成人福利片| 一区二区三区.www| 日韩一区二区三区四区五区六区| 久久成人免费网站| 国产精品国产成人国产三级| 欧美日韩一区二区三区高清| 免费久久99精品国产| 亚洲国产精品av| 欧美剧情电影在线观看完整版免费励志电影 | 欧美夫妻性生活| 韩国v欧美v日本v亚洲v| 日本一区二区成人在线| 欧美性受xxxx黑人xyx| 免费看精品久久片| 国产欧美日韩久久| 91视频国产观看| 麻豆精品久久精品色综合| 亚洲免费av网站| 久久青草欧美一区二区三区| 欧美视频一二三区| 成人免费高清视频| 久久福利资源站| 亚洲成人动漫精品| 国产精品大尺度| 久久精品欧美日韩精品| 91精品国产乱码| 在线观看亚洲一区| 成人av网站在线观看免费| 麻豆中文一区二区| 亚洲成人1区2区| 中文字幕亚洲综合久久菠萝蜜| 日韩欧美第一区| 欧美日韩精品福利| 99热精品国产| 国产不卡视频一区二区三区| 日本欧美一区二区三区| 日韩码欧中文字| 国产丝袜美腿一区二区三区| 欧美一二三四在线| 7777精品伊人久久久大香线蕉超级流畅| 91免费视频大全| 一本大道综合伊人精品热热| 99精品欧美一区二区蜜桃免费| 丰满放荡岳乱妇91ww| 国产露脸91国语对白| 韩国精品主播一区二区在线观看|