成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何解析 Bash 程序的配置文件

系統 Linux
因此,將配置項放在容易維護的文本文件中,提供了分離,并允許非程序員編輯配置,而不會有對代碼進行意外修改的危險。許多開發者對用編譯語言編寫的程序都是這樣做的,因為他們并不期望用戶是開發者。由于許多相同的原因,對解釋型 shell 語言這樣做也是有意義的。

[[410251]] 

將配置文件與代碼分離,使任何人都可以改變他們的配置,而不需要任何特殊的編程技巧。

將程序配置與代碼分離是很重要的。它使非程序員能夠改變配置而不需要修改程序的代碼。如果是編譯好的二進制可執行文件,這對非程序員來說是不可能的,因為它不僅需要訪問源文件(我們在開源程序中會這樣),而且還需要程序員的技能組合。很少有人有這種能力,而且大多數人都不想學習它。

對于像 Bash 這樣的 shell 語言,由于 shell 腳本沒有被編譯成二進制格式,所以從定義上講,源碼是可以訪問的。盡管有這種開放性,但對于非程序員來說,在 shell 腳本中鉆研和修改它們并不是一個特別好的主意。即使是經驗豐富的開發人員和系統管理員,也會意外地做出一些導致錯誤或更糟的改變。

因此,將配置項放在容易維護的文本文件中,提供了分離,并允許非程序員編輯配置,而不會有對代碼進行意外修改的危險。許多開發者對用編譯語言編寫的程序都是這樣做的,因為他們并不期望用戶是開發者。由于許多相同的原因,對解釋型 shell 語言這樣做也是有意義的。

通常的方式

和其他許多語言一樣, 你可以為 Bash 程序編寫代碼,來讀取并解析 ASCII 文本的配置文件、讀取變量名稱并在程序代碼執行時設置值。例如,一個配置文件可能看起來像這樣:

  1. var1=LinuxGeek46
  2. var2=Opensource.com

程序將讀取文件,解析每一行,并將值設置到每個變量中。

源引

Bash 使用一種更簡單的方法來解析和設置變量, 叫做源引sourcing。從一個可執行的 shell 程序中獲取一個外部文件是一種簡單的方法,可以將該文件的內容完整地引入 shell 程序中。在某種意義上,這很像編譯語言的 include 語句,在運行時包括庫文件。這樣的文件可以包括任何類型的 Bash 代碼,包括變量賦值。

(LCTT 譯注:對于使用 source 或 . 命令引入另外一個文件的行為,我們首倡翻譯為“源引”。)

像往常一樣,演示比解釋更容易。

首先,創建一個 ~/bin 目錄(如果它還不存在的話),并將其作為當前工作目錄(PWD)。Linux 文件系統分層標準 將 ~/bin 定義為用戶存儲可執行文件的適當位置。

在這個目錄下創建一個新文件。將其命名為 main,并使其可執行:

  1. [dboth@david bin]$ touch main
  2. [dboth@david bin]$ chmod +x main
  3. [dboth@david bin]$

在這個可執行文件中添加以下內容:

  1. #!/bin/bash
  2. Name="LinuxGeek"
  3. echo $Name

并執行這個 Bash 程序:

  1. [dboth@david bin]$ ./main
  2. LinuxGeek
  3. [dboth@david bin]$

創建一個新的文件并命名為 ~/bin/data。這個文件不需要是可執行的。在其中添加以下信息:

  1. # Sourced code and variables
  2. echo "This is the sourced code from the data file."
  3. FirstName="David"
  4. LastName="Both"

在 main 程序中增加三行,看起來像這樣:

  1. #!/bin/bash
  2. Name="LinuxGeek"
  3. echo $Name
  4. source ~/bin/data
  5. echo "First name: $FirstName"
  6. echo "LastName: $LastName"

重新運行該程序:

  1. [dboth@david bin]$ ./main
  2. LinuxGeek
  3. This is the sourced code from the data file.
  4. First name: David
  5. LastName: Both
  6. [dboth@david bin]$

關于源引還有一件非常酷的事情要知道。你可以使用一個單點(.)作為 source 命令的快捷方式。改變 main 文件,用 . 代替 source。

  1. #!/bin/bash
  2. Name="LinuxGeek"
  3. echo $Name
  4. . ~/bin/data
  5. echo "First name: $FirstName"
  6. echo "LastName: $LastName"

并再次運行該程序。其結果應該與之前的運行完全相同。

運行 Bash

每一臺使用 Bash 的 Linux 主機(幾乎所有主機都是,因為 Bash 是所有發行版的默認 shell),都包括一些優秀的、內置的源引示例。

每當 Bash shell 運行時,它的環境必須被配置成可以使用的樣子。有五個主要文件和一個目錄用于配置 Bash 環境。它們和它們的主要功能如下:

  • /etc/profile: 系統級的環境和啟動程序
  • /etc/bashrc: 系統級的函數和別名
  • /etc/profile.d/: 包含系統級的腳本的目錄,用于配置各種命令行工具,如 vim 和 mc 以及系統管理員創建的任何自定義配置腳本
  • ~/.bash_profile: 用戶特定的環境和啟動程序
  • ~/.bashrc: 用戶特定的別名和函數
  • ~/.bash_logout: 用戶特定的命令,在用戶注銷時執行

試著通過這些文件追蹤執行順序,確定它在非登錄 Bash 初始化和登錄 Bash 初始化中使用的順序。我在我的 Linux 培訓系列《使用和管理 Linux:從零到系統管理員》的第一卷第 17 章中這樣做過。

給你一個提示。這一切都從 ~/.bashrc 腳本開始。

總結

這篇文章探討了在 Bash 程序中引用代碼和變量的方法。這種從配置文件中解析變量的方法是快速、簡單和靈活的。它提供了一種將 Bash 代碼與變量賦值分開的方法,以使非程序員能夠設置這些變量的值。

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-12-15 08:03:57

Mybatis配置文件

2011-03-28 09:07:26

Nagios配置文件

2010-02-03 09:19:31

Python模塊

2010-02-22 10:18:18

WCF配置文件

2021-07-05 12:09:58

Python編程語言

2022-11-10 09:05:18

Lua配置文件

2010-03-18 18:17:01

Python 配置文件

2021-07-13 05:47:40

GroovyJSON軟件開發

2010-06-23 16:19:48

Linux Bash

2009-12-21 11:19:50

WCF配置文件

2011-09-08 16:07:13

Widget配置文件

2009-09-14 09:17:43

.settings配置

2020-10-20 10:12:00

Windows

2011-03-25 17:13:37

Nagios配置文件

2011-02-25 16:39:34

proftpd配置文件

2010-03-19 11:18:07

Python讀寫配置文

2021-11-07 14:00:16

JekyllBashAPI后端

2021-03-12 08:00:00

Kubernetes工具

2011-01-19 14:00:21

2019-11-22 10:00:53

ICC配置文件Windows 10
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级免费看 | 91精品久久久久久综合五月天 | 99re在线视频 | 久久久免费| 日韩在线观看一区 | 日韩精品1区2区3区 成人黄页在线观看 | 欧美日韩国产高清视频 | 久热免费在线 | 亚洲综合字幕 | 久久久成人免费视频 | 久草日韩 | 国产一区二区精品在线观看 | 国产精品一区一区 | 黑人一级片视频 | 超碰人人艹 | 欧美中文一区 | 视频一区二区国产 | 国产成人免费 | 国产精品69毛片高清亚洲 | 黄色一级大片在线免费看产 | 久久99精品久久久久久狂牛 | 人人干人人草 | 午夜影院在线观看版 | 久久亚洲高清 | 欧美久久影院 | 91精品国产92 | 欧美无乱码久久久免费午夜一区 | 成人免费视频网站在线看 | 欧美jizzhd精品欧美巨大免费 | 日韩成人免费视频 | 欧美视频三级 | 青娱乐av| 99久久精品免费看国产四区 | 91国产精品 | 国产一区二区视频在线 | 激情免费视频 | 久久免费精彩视频 | 看一级毛片视频 | 久久久久久久久国产精品 | 偷拍亚洲色图 | 久一精品|