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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux bash source 0,linux中BASH_SOURCE[0](转)

發布時間:2023/12/2 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux bash source 0,linux中BASH_SOURCE[0](转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在C/C++中,__FUNCTION__常量記錄當前函數的名稱。有時候,在日志輸出的時候包含這些信息是非常有用的。而在Bash中,同樣有這樣一個常量FUNCNAME,但是有一點區別是,它是一個數組而非字符串,其中數組的第一個元素為當前函數的名稱。可能初看有點難以理解,為什么FUNCNAME要是一個數組呢?看看下面的例子,你就明白了。

1 #!/bin/bash

2

3 function test_func()

4 {

5 echo "Current $FUNCNAME, \\$FUNCNAME => (${FUNCNAME[@]})"

6 another_func

7 echo "Current $FUNCNAME, \\$FUNCNAME => (${FUNCNAME[@]})"

8 }

9

10 function another_func()

11 {

12 echo "Current $FUNCNAME, \\$FUNCNAME => (${FUNCNAME[@]})"

13 }

14

15 echo "Out of function, \\$FUNCNAME => (${FUNCNAME[@]})"

16 test_func

17 echo "Out of function, \\$FUNCNAME => (${FUNCNAME[@]})"

執行后的結果為:

1 Out of function, $FUNCNAME => ()

2 Current test_func, $FUNCNAME => (test_func main)

3 Current another_func, $FUNCNAME => (another_func test_func main)

4 Current test_func, $FUNCNAME => (test_func main)

5 Out of function, $FUNCNAME => ()

所以,更加準確地說,FUNCNAME是一個數組,但是bash中會將它維護成類似一個堆棧的形式。與FUNCNAME相似的另外一個比較有用的常量是BASH_SOURCE,同樣是一個數組,不過它的第一個元素是當前腳本的名稱。這在source的時候非常有用,因為在被source的腳本中,$0是父腳本的名稱,而不是被source的腳本名稱。而BASH_SOURCE就可以派上用場了。

1 # If the script is sourced by another script

2 if [ -n "$BASH_SOURCE" -a "$BASH_SOURCE" != "$0" ]

3 then

4 do_something

5 else # Otherwise, run directly in the shell

6 do_other

7 fi

BASH_SOURCE[0]?BASH_SOURCE[0] 等價于?BASH_SOURCE, 取得當前執行的shell文件所在的路徑及文件名。

在目錄/home/sam/linux編程練習/Shell下新建腳本test.sh:

1 #!/bin/bash

2 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" && pwd )"

3 # DIR=$( cd "$( dirname ${BASH_SOURCE[0]} )/../" && pwd )

4 # DIR=`cd $( dirname ${BASH_SOURCE[0]} )/../ && pwd`

5 echo $DIR

6 echo "ok"

執行的時候,需要棵執行權限:chmod +x test.sh?然后執行./test.sh?而不是?sh ./test.sh

經測試以上寫都正確:輸出

1 /home/sam/linux編程練習

2 ok

其實就是一個:1.取得當前執行的shell文件所在的完整路徑 2. 執行dirname,并進入父級目錄 3. 打印當前工作目錄的過程

1 # echo "${BASH_SOURCE[0]}"

2 # echo "${BASH_SOURCE}"

3 # echo "$( dirname "${BASH_SOURCE[0]}" )"

4 # DIR="$( cd "$( dirname ${BASH_SOURCE[0]} )" && pwd )"

5 # echo $DIR

總結

以上是生活随笔為你收集整理的linux bash source 0,linux中BASH_SOURCE[0](转)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 精品动漫一区 | 色咪咪网站 | av网站在线观看免费 | 美女啪啪免费视频 | 国产成人精品一区二 | 色噜噜一区二区 | h视频在线看 | 6080成人| 日韩一区欧美一区 | 国产成人午夜精品无码区久久 | 99国产精品白浆在线观看免费 | 日本男人天堂 | 小毛片网站 | 一本大道东京热无码aⅴ | 欧美乱大交xxxxx潮喷 | 福利视频一二区 | 草逼视频网站 | 亚洲第一视频网 | 精品日韩在线 | 青青伊人精品 | 日韩午夜在线视频 | 樱花视频在线观看 | 天堂在线v| 邵氏电影《金莲外传2》免费观看 | 97涩涩网 | 精品视频成人 | 美女视频黄频视频大全 | 无码精品黑人一区二区三区 | 神马午夜一区二区 | 精品国产一区一区二区三亚瑟 | 日韩欧美小视频 | 黄色高清无遮挡 | 日韩人妻无码一区二区三区99 | 色眯眯网| 欧美做受高潮 | 日本一区二区不卡在线 | 久久久久久久久一区 | 欧美成一区二区三区 | 国产精品久久国产精品99 | 精品伦精品一区二区三区视频 | 三女警花合力承欢猎艳都市h | 免费色视频| 能看的黄色网址 | 直接看的毛片 | 99在线精品视频 | 一区二区啪啪啪 | 四虎少妇做爰免费视频网站四 | 人人干人人草 | 亚洲三级在线 | 一区二区日本 | 国产又大又黑又粗免费视频 | 欧美精品久久久久久久久久 | 99er热精品视频 | 日韩欧美亚洲一区 | 亚洲av综合色区 | 欧美日韩不卡一区二区 | 国产精品99久久久久久人 | 色黄视频网站 | 亚洲视频三区 | www.777含羞草 | 臭脚猛1s民工调教奴粗口视频 | 国产精品综合视频 | 亚洲天堂av片 | 亚洲av综合色区无码一二三区 | 欧美影院在线观看 | 国产在线网 | 成人春色影视 | 久久久999精品视频 国产在线xx | 69影院少妇在线观看 | 精品国产三级片在线观看 | 午夜视频福利 | 成人在线观看亚洲 | 久久97精品久久久久久久不卡 | 男人午夜网站 | 男人天堂你懂的 | 久久国产小视频 | 国产成人精品免费网站 | 久久精品—区二区三区舞蹈 | 成人1区2区| 韩国无码av片在线观看网站 | 18精品爽国产白嫩精品 | 开心激情播播网 | 国产香蕉视频在线播放 | 国产麻豆网 | 天天躁狠狠躁狠狠躁夜夜躁68 | 99精品一级欧美片免费播放 | 久久久久久久国产精品视频 | 欧美三级黄色大片 | 一级特黄色| 久久91精品 | 欧美一级网址 | 调教在线观看 | 国产日本视频 | 久热精品在线观看视频 | 调教丰满的已婚少妇在线观看 | 久久成人精品视频 | 波多野结衣乳巨码无在线观看 | 男女污网站 | 中文字幕在线观看你懂的 |