欧美亚洲大片-国产免费成人在线视频-国产成人8x人在线视频软件-日韩亚洲欧美中文字幕-97伦伦午夜电影理伦片-亚洲综合精品视频-曰本女人牲交高潮视频-久久久精品欧美-天天干天天操天天碰-精品国产乱码久久久久久1区2区-黄色一级免费片-在线免费欧美-国产成人精品在线视频-精人妻一区二区三区-香蕉视频2020-综合久久99-欧美日韩亚洲国产综合

十年專注于品牌網(wǎng)站建設 十余年專注于網(wǎng)站建設_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡微信公眾號 掃一掃關(guān)注
小程序
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡微信小程序

百恒網(wǎng)絡

南昌百恒網(wǎng)絡

Linux系統(tǒng)中如何創(chuàng)建函數(shù)庫?

百恒網(wǎng)絡 2017-08-04 5329

使用函數(shù)可以在腳本中省去一些輸入工作,這一點是顯而易見的。但如果你碰巧要在多個腳本中使用同一段代碼呢?顯然,為了使用一次而在每個腳本中都定義同樣的函數(shù)太過麻煩。

有個方法能解決這個問題!bash shell允許創(chuàng)建函數(shù)庫文件,然后在多個腳本中引用該庫文件。

這個過程的第一步是創(chuàng)建一個包含腳本中所需函數(shù)的公用庫文件。這里有個叫作myfuncs的庫文件,它定義了3個簡單的函數(shù),那么如何創(chuàng)建函數(shù)庫文件呢?下面就由南昌網(wǎng)絡公司小編為大家講解一下:

$ cat myfuncs

# my script functions

function addem {

echo $[ $1 + $2 ]

}

function multem {

echo $[ $1 * $2 ]

}

function divem {

if [ $2 -ne 0 ]

then

echo $[ $1 / $2 ]

else

echo -1

fi

}

$

下一步是在用到這些函數(shù)的腳本文件中包含myfuncs庫文件。從這里開始,事情就變復雜了。

問題出在shell函數(shù)的作用域上。和環(huán)境變量一樣,shell函數(shù)僅在定義它的shell會話內(nèi)有效。如果你在shell命令行界面的提示符下運行myfuncs shell腳本,shell會創(chuàng)建一個新的shell并在其中運行這個腳本。它會為那個新shell定義這三個函數(shù),但當你運行另外一個要用到這些函數(shù)的腳本時,它們是無法使用的。

這同樣適用于腳本。如果你嘗試像普通腳本文件那樣運行庫文件,函數(shù)并不會出現(xiàn)在腳本中。

$ cat badtest4

#!/bin/bash

# using a library file the wrong way

./myfuncs

result=$(addem 10 15)

echo "The result is $result"

$

$ ./badtest4

./badtest4: addem: command not found

The result is

$

使用函數(shù)庫的關(guān)鍵在于source命令。source命令會在當前shell上下文中執(zhí)行命令,而不是創(chuàng)建一個新shell??梢杂胹ource命令來在shell腳本中運行庫文件腳本。這樣腳本就可以使用庫中的函數(shù)了。

source命令有個快捷的別名,稱作點操作符(dot operator)。要在shell腳本中運行myfuncs庫文件,只需添加下面這行:

. ./myfuncs

這個例子假定myfuncs庫文件和shell腳本位于同一目錄。如果不是,你需要使用相應路徑訪問該文件。下面小編就來講一下用myfuncs庫文件創(chuàng)建腳本的方法。

$ cat test14

#!/bin/bash

# using functions defined in a library file

. ./myfuncs

value1=10

value2=5

result1=$(addem $value1 $value2)

result2=$(multem $value1 $value2)

result3=$(divem $value1 $value2)

echo "The result of adding them is: $result1"

echo "The result of multiplying them is: $result2"

echo "The result of dividing them is: $result3"

$

$ ./test14

The result of adding them is: 15

The result of multiplying them is: 50

The result of dividing them is: 2

$

這樣該腳本就成功地使用了myfuncs庫文件中定義的函數(shù)。

以上就是南昌網(wǎng)絡公司小編為大家介紹的在Linux中庫文件的創(chuàng)建與使用,如果大家還有哪些不太明白的地方,可隨時來電和我們聯(lián)系,此外,了解更多關(guān)于網(wǎng)站建設、微信開發(fā)、南昌APP開發(fā)等方面的資訊,歡迎關(guān)注百恒網(wǎng)絡官網(wǎng)動態(tài)!


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡小程序

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×
赣榆县| 涞源县| 昌黎县| 霍城县| 屏东县| 元氏县| 章丘市| 宝山区| 高青县| 肇庆市| 灵丘县| 洞口县| 万安县| 定陶县| 措勤县| 泽州县| 乌审旗| 马边| 鄂尔多斯市| 凤翔县| 桂平市| 沧州市| 邢台县| 女性| 阳高县| 天等县| 湖州市| 阳城县| 安义县| 嘉善县| 广灵县| 桑植县| 南城县| 河北区| 苍山县| 高雄县| 津市市| 靖远县| 九龙坡区| 嘉荫县| 黎平县|