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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

特殊變量類型

局部變量

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

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

環境變量

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

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

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

位置參數

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

$0就是腳本自身的名字

#! /bin/bash # 這個腳本用于測試腳本變量 # $0 代表變量本省 echo -e '$0' "= $0" # 腳本的第一個參數 echo -e '$1' "= $1" # 第二個參數 echo -e '$2' "= $2" # 第三個參數 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個參數, 比如: # 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的參數必須用{}括起來. 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

執行結果

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

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

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

使用shift將位置參數進行整體的左移

#! /bin/bash # shift 是將位置參數整體向左移動的命令# $@是,一個一個打印出命令參數 # $* 與$@達到的效果一樣,但是$*是講位置參數作為一個整體輸出的意思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-高级编程--位置变量的全部內容,希望文章能夠幫你解決所遇到的問題。

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