Linux shell程式設計學習筆記(三) 指令碼引數

2021-08-09 16:09:17 字數 1260 閱讀 7103

1、指令碼傳遞引數測試

#!/bin/bash

#test.sh

#test pass parameters

#by wzs 20171021

echo "$# parameters"

echo "$@"

執行指令碼如下:

book@wzs:~/work/tq210/shell$ ./test.sh a "b c d"

2 parameters

a b c d

2、管道

cmd1 | cmd2 , 把cmd1的標準輸出與cmd2的標準輸入相連

沒有程式數量限制,可以無限增加管道,如:

book@wzs:~/work/tq210/shell$ head -5 /etc/passwd

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/bin/sh

bin:x:2:2:bin:/bin:/bin/sh

sys:x:3:3:sys:/dev:/bin/sh

sync:x:4:65534:sync:/bin:/bin/sync

book@wzs:~/work/tq210/shell$

book@wzs:~/work/tq210/shell$ head -5 /etc/passwd | grep bash

root:x:0:0:root:/root:/bin/bash

3、檔案描述符

無符號整數的控制代碼,開啟現有檔案或新建檔案時,核心都會返回乙個檔案描述符

讀寫檔案時需要指定檔案描述符

標準輸入的檔案描述符是0

標準輸出的檔案描述符是2

標準錯誤的檔案描述符是2

4、重定向

重定向標準輸出:> 或 1>

book@wzs:~/work/tq210/shell$ cat test.sh > 1.text

book@wzs:~/work/tq210/shell$ cat test.sh 1> 1.text

重定向標準錯誤:2>

重定向標準輸入:0<

重定向標準輸出和標準錯誤:&>

5、特殊檔案

/dev/null:所有寫入/dev/null的資訊都消失

/dev/zero:建立乙個指定長度,並且初始化為空的檔案

linux Shell程式設計學習筆記

linux shell程式設計 bin bash 這行據說是用來選擇shell的,但是我刪掉試了試沒什麼區別 據說是在某些版本的shell下會出錯。變數定義 如無格式要求可以不定義,如果需要宣告格式用declare命令。declare test test test declare afirx 引數說...

Linux Shell 程式設計學習(二)

case多選結構 基本結構 case word in case 1 command 1 case 2 command 2 case 3 command 3 case n command n esac 乙個demo while 迴圈 while test commands do command sel...

Linux Shell 程式設計學習筆記 1

linux shell命令主要有三種 內部命令,shell函式,和外部命令 內部命令 內部命令是shell直譯器本身包含的命令,在檔案系統中沒有相應的可執行檔案。例如,cd命令和echo命令就是兩個常用的shell內部命令。命令列在執行內部命令時,不需要建立新的程序,當然也就不需要銷毀程序。互動式的...