在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=1002 $ (($var>100?var++:var--))
3)重定向
1 : > test.file23cat test.file
cat 檔案,什麼也沒有。
4)當注釋用
使用冒號還可以用作注釋行的開始,但是如果有語法錯誤,仍將報錯,這一點與使用#號不同。如:
1 [root@localhost test]# cat test.sh23fun()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...