日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bash-高级编程--位置变量

發(fā)布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash-高级编程--位置变量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

特殊變量類型

局部變量

這種變量只有代碼塊或者函數(shù)中才可見

如果變量用local 來聲明, 那么它就只能夠在該變量被聲明的代碼塊中可見. 這個代碼塊就是局
部"范圍". 在一個函數(shù)中, 一個局部變量只有在函數(shù)代碼塊中才有意義.

環(huán)境變量

這種變量將影響用戶接口和shell的行為

通常情況下,每個進程都有自己的"環(huán)境",這個環(huán)境是由一組變量組成的, 這些變量存有進程可能需要引用的信息。

一個腳本可以通過export傳遞環(huán)境變量給子進程,但是子進程不能傳遞環(huán)境變量給父進程。

位置參數(shù)

從命令行傳遞到腳本的參數(shù):$0, $1, $2, $3 ...

$0就是腳本自身的名字

#! /bin/bash # 這個腳本用于測試腳本變量 # $0 代表變量本省 echo -e '$0' "= $0" # 腳本的第一個參數(shù) echo -e '$1' "= $1" # 第二個參數(shù) echo -e '$2' "= $2" # 第三個參數(shù) echo -e '$3' "= $3"

運行結果:

andrew@andrew:/work/linux-sys/bash/2.基本/src$ bash bash_name.sh name s d $0 = bash_name.sh $1 = name $2 = s $3 = d

bash_name_test.sh

#!/bin/bash # 作為用例, 調用這個腳本至少需要10個參數(shù), 比如: # bash bash_name_test.sh 1 2 3 4 5 6 7 8 9 10 MINPARAMS=10echoecho "The name of this script is \"$0\"." # 添加./是表示當前目錄 echo "The name of this script is \"`basename $0`\"." # 去掉路徑名, 剩下文件名, (參見'basename')echoif [ -n "$1" ] # 測試變量被引用. thenecho "Parameter #1 is $1" # 需要引用才能夠轉義"#" fiif [ -n "$2" ] thenecho "Parameter #2 is $2" fiif [ -n "$3" ] thenecho "Parameter #3 is $3" fi# ...if [ -n "${10}" ] # 大于$9的參數(shù)必須用{}括起來. thenecho "Parameter #10 is ${10}" fiecho "-----------------------------------" echo "All the command-line parameters are: "$*""if [ $# -lt "$MINPARAMS" ] thenechoecho "This script needs at least $MINPARAMS command-line arguments!" fiechoexit 0

執(zhí)行結果

andrew@andrew:/work/linux-sys/bash/2.基本/src$ bash ./bash_name_test.sh 1 2 3 4 5 6 7 8 9 0 The name of this script is "./bash_name_test.sh". The name of this script is "bash_name_test.sh".Parameter #1 is 1 Parameter #2 is 2 Parameter #3 is 3 Parameter #10 is 0 ----------------------------------- All the command-line parameters are: 1 2 3 4 5 6 7 8 9 0

有時候腳本中需要在不知道輸入 多少參數(shù)的情況下,定位到最后一個可以 借助$#實現(xiàn), $#表示參數(shù)的個數(shù)的變量

args=$# # 位置參數(shù)的個數(shù). lastarg=${!args} # 或: lastarg=${!#} #(感謝, Chris Monson.) # 注意, 不能直接使用 lastarg=${!$#} , 這會產生錯誤. shift命令會重新分配位置參數(shù),其實就是把所有的位置參數(shù)向左移動一個位置

使用shift將位置參數(shù)進行整體的左移

#! /bin/bash # shift 是將位置參數(shù)整體向左移動的命令# $@是,一個一個打印出命令參數(shù) # $* 與$@達到的效果一樣,但是$*是講位置參數(shù)作為一個整體輸出的意思echo "$@"shiftecho "$@"shift echo "$*" andrew@andrew:/work/linux-sys/bash/2.基本/src$ bash shift_test.sh 1 2 3 5 6 1 2 3 5 6 2 3 5 6 3 5 6

總結

以上是生活随笔為你收集整理的bash-高级编程--位置变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。