首頁 > 系統教程 > Linux > 主體

關於 Linux Bash Shell 中變數的 5 個易錯點

WBOY
發布: 2024-02-12 22:09:13
轉載
1039 人瀏覽過

Bash腳本語言支援在Linux中對變數進行操作。但是,如果您有其他流行程式語言的開發經驗,那麼使用Bash處理變數可能會容易出錯。這是因為它的語法與其他語言不同(對某些開發人員來說甚至有些奇怪)。

关于 Linux Bash Shell 中变量的 5 个易错点

#這篇文章將根據我的經驗為您提供5個實用提示。閱讀後,它可以幫助您避免不必要的錯誤。

0. 等號兩邊不能有空格

對於許多語言,例如Python,在等號兩邊添加空格是一個好習慣,因為它可以提高程式碼的可讀性。

但是在Bash中,定義變數時不應該增加額外的空格。

例如,如果我宣告一個名為name的變量,如下所示:

name = "Yang"
登入後複製

這裡會有一個錯誤:

-bash: name: command not found
登入後複製

如上所示,Bash 將 name 視為命令而不是變量,因為我添加了不必要的空格。

因此,定義變數的正確方法如下:

name="Yang"
登入後複製

1.正確地定義陣列

在 Bash 中定義一個陣列並不難。我們只需要使用一對括號來包含所有元素,如下例所示:

names=("Yang" "Elon" "Bill")
登入後複製

俗話說得好,「細節決定成敗」。我之前在編寫 Bash 腳本時犯了一個嚴重的錯誤。我習慣性地使用逗號(而非空格)來分隔數組中的每個元素。

names=("Yang","Elon","Bill")
登入後複製

Bash 不會將逗號視為分隔符,在 names 陣列中只有一個元素 Yang,Elon,Bill 而不是預期的三個。

2.正確選擇引號

當我們在 Bash 中宣告一個變數時,關於引號的使用有 3 個可選的方案:

  • 沒有引號
  • #用單引號
  • #用雙引號

#預設情況下,Bash 中的每個值都是字串。因此,如果不需要空格,我們就不需要使用任何引號。 (同樣,它與其他語言有些不同,在其他語言中,您不能在沒有引號的情況下定義字串)

當您需要使用引號時,請注意單引號雙引號之間的差異。

例如,讓我們宣告 3 個變量,如下所示。那麼,truth1truth2 有什麼不同呢?

关于 Linux Bash Shell 中变量的 5 个易错点

如果你打印它们,你会看到 truth1${name} is amazing.。而 truth2Yang is amazing.

总而言之,一对单引号内的字符串将始终被解释为它的本身。

3. 避免在命令中使用反引号

在 Bash 中,我们可以将命令的结果保存到变量中。有两种可能的方法来做到这一点:

  • variable=command“
  • variable=$(command)

例如,要保存 ls 命令的结果,我们可以这样写:

file_list=`ls`
登入後複製

或者

file_list=$(ls)
登入後複製

但是,这里的最佳实践始终是使用第二种方法,尤其是在编写较长的脚本时。因为反引号单引号看起来很相似,有时你可能会混淆它们。

4. 避免使用特殊名称

一些名称在 Linux 中被预定义为环境变量,如 USERHOMEPATH 等。我们可以使用 printenv 命令列出它们。

显然,我们不应该用与环境变量相同的名称来声明我们的变量。

好消息是 Linux 中所有的环境变量都是用大写字母写的,所以我们可以用小写字母来自定义变量,以区别环境变量。这是一个好习惯。

以上是關於 Linux Bash Shell 中變數的 5 個易錯點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:lxlinux.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!