Linux Shell 內建命令 冒號

2022-09-07 05:09:10 字數 2363 閱讀 4137

在linux系統中,冒號(:)常用來做路徑的分隔符(path),資料字段的分隔符(/etc/passwd)等。其實,冒號(:)在bash中也是乙個內建命令,它啥也不做,是個空命令、只起到佔乙個位置的作用,但有時候確實需要它。當然,它也有它的用途的,否則沒必要存在。在·linux的幫助頁中說它除了引數擴充套件和重定向之外不產生任何作用。

gnu 幫助:

冒號(:)的作用

1)空命令。

2)引數擴充套件。

3)重定向。

4)當注釋使用。

理解冒號(:)

1)理解空命令。空命令就是什麼也不做,所以返回碼永遠都是0。雖說是空命令,但仍是命令,就具備一般命令應有的特徵,可以象一般命令一樣使用。如

1

[root@localhost test]# :

2 [root@localhost test]# echo $?30

4 [root@localhost test]#

可以直接在console中執行。返回碼為0。

利用這一特性,:可以當true使用。如用在while等迴圈體中的條件判斷。

2)理解引數擴充套件。

冒號引起的引數擴充套件,意思是將引數的值替換為新的值。一般有以下幾種引數擴充套件用法:

1 $    如果parameter沒有設定或者為空,替換為word;否則替換為parameter的值

2 $ 如果parameter沒有設定或者為空,不進行任何替換;否則替換為word。

3 $ 如果parameter沒有設定或者為空,把word賦值給parameter。實際parameterd的值真的被替換了,這就是=號的意思。不能用這種方式指派位置引數或特殊引數的值。

4 $ 如果parameter沒有設定或者為空,把word輸出到stderr,否則替換為parameter的值。

-、+、? 實際parameter的值並不被修改,擴充套件只是臨時顯示成word的值。準確的講,擴充套件實際替換的是引數的顯示,而不是引數的定義。只有=,才是替換引數的定義。

5$ 擴充套件為parameter中從offset開始的子字串。

6$ 擴充套件為parameter中從offset開始的長度不超過length的字元。

原文:https://

blog.csdn.net/ieearth/article/details/52589020

* word前的「-」可以理解為「沒定義,則替換成word」;「+」可以理解為「有定義,則替換成word」。

* word前的「?」可以理解為「引數到底定義了沒,沒定義,把word當錯誤訊息列印出來。」

$ foo=hellobash

$ echo

$hellobash

$ echo $

hellobash

$ echo

$hellobash

$ echo $

newword

$ echo

$hellobash

$ echo $

hellobash

$ echo

$hellobash

$ echo $

hellobash

$ echo

$hellobash

$ unset foo

$ echo$$

echo $

newword

$ echo$$

echo $

$ echo$$

echo $

bash: foo: newword

$ echo$$

echo $

newword

$ echo

$newword

$ echo $

wword

$ echo $

wwo---------------------以上例子**https:

三元運算子

1 $ var=100

2 $ (($var>100?var++:var--))

3)重定向

1 : > test.file23

cat test.file

cat 檔案,什麼也沒有。

4)當注釋用

使用冒號還可以用作注釋行的開始,但是如果有語法錯誤,仍將報錯,這一點與使用#號不同。如:

1 [root@localhost test]# cat test.sh23

fun()410

11fun

1213 [root@localhost test]# sh test.sh

141222

15222221

linux shell中內建命令總結中

linux建立檔案的命令 1.vim test.c 開啟並儲存退出,就相當於建立乙個檔案 2.touch test.c 建立乙個檔案,當這個檔案存在時,touch表示把此檔案同步到最新的更新時間,這個特性會在編譯等階段,尤其是不改變檔案內容時很有用 3.echo test.c 建立乙個檔案,當這個檔...

說說Linux shell外部命令與內建命令

linux 命令有內部命令 內建命令 和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。內部命令 內部命令不需要使用子程序來執行,它們已經和shell編譯成一體,作為shell工具的組成部分存在。不需要借助外部程式檔案來執行。它們是一些比較簡單的linux系統命令,如exit,his...

Linux Shell命令 tr命令

在linux常用的命令中,我們可以通過使用tr,非常容易地實現 sed 的許多最基本功能。1 定義 日常操作中,tr用來從標準輸入中通過替換或刪除操作進行字元轉換。2 使用格式 tr c d s string1 to translate from string2 to translate to in...