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

      百恒網絡

      南昌百恒網絡

      Linux系統中如何創建函數庫?

      百恒網絡 2017-08-04 4765

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

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

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

      $ 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

      }

      $

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

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

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

      $ 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

      $

      使用函數庫的關鍵在于source命令。source命令會在當前shell上下文中執行命令,而不是創建一個新shell。可以用source命令來在shell腳本中運行庫文件腳本。這樣腳本就可以使用庫中的函數了。

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

      . ./myfuncs

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

      $ 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庫文件中定義的函數。

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


      400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡小程序

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

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      欧洲精品码一区二区三区| 成人午夜精品视频在线观看| 国模和精品嫩模私拍视频| 精品videossexfreeohdbbw| 国产A三级久久精品| 日韩精品无码一区二区三区| 精品国产V无码大片在线看| 三上悠亚日韩精品| 国产亚洲精品欧洲在线观看| 91无码人妻精品一区二区三区L | 国产精品成人69XXX免费视频| 国产精品视频白浆合集| 国产精品熟女高潮视频| 午夜精品久久久久久| 国产麻豆精品精东影业av网站| 2022国产精品手机在线观看| 拍真实国产伦偷精品| 亚洲AV无码成人精品区日韩| 亚洲精品永久在线观看| 99久久免费精品高清特色大片| 亚洲精品视频免费| 中文字幕在线观看日韩| 国产精品VIDEOSSEX久久发布| 69国产成人精品午夜福中文| 亚洲国产美女精品久久久久∴| 一本久久伊人热热精品中文| 六月婷婷精品视频在线观看| 国产精品视频一区二区猎奇| 亚洲精品中文字幕无码AV| 久久亚洲AV午夜福利精品一区 | 国产区精品高清在线观看| 日韩中文字幕免费| 国产精品一线二线三线| 人妻熟妇乱又伦精品视频APP| 2020国产精品自拍| 97视频精品全国在线观看| 久热精品视频在线观看99小说| 97久久国产露脸精品国产| 久久久久无码精品| 亚洲国模精品一区| 亚洲精品国产精品乱码不卞 |