萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> Shell命令讀取數據與輸出數據

Shell命令讀取數據與輸出數據

 shell腳本讀取數據的幾種方式:
1.鍵盤輸入,默認
2.從文件中讀取
3.通過管道命令傳遞

echo的功能:
c :不換行
f :進紙
t :跳格
n :換行
表示轉義,例如:""/dev/rmt0""翻譯為,"/dev/rmt0"

read:從鍵盤或文件的某一行文本中讀取信息,並將其賦給一個變量。
[開發]/>read name
hello i am a regular user
[開發]/>echo $name
hello i am a regular user
[開發]/>

cat:作用,1.顯示文件內容,2.創建文件,3.顯示控制字符。
1.顯示文件內容
cat filename | more
cat filename | pg
2.創建文件
cat > filename
3.顯示控制字符
cat -v filename

管道:可以通過管道,將一個命令的輸出傳遞給另一個命令做為輸入。
形式:命令1 | 命令2
例如:
[開發]/usr/xxxx/ytcclb>who | awk '{print $1"t"$2}'
xxxx ttyp0
xxxx ttyp1
xxxx ttyp2
...
xxxx ttyp55
[開發]/usr/xxxx/ytcclb>df -k | awk '{print $1}' | grep -v "Filesystem"
/dev/root
/dev/boot
[開發]/usr/xxxx/ytcclb>df -k | awk '{print $1}'| grep -v "Filesystem"|sed s'//dev///g'
root
boot
[開發]/usr/xxxx/ytcclb>

tee命令
作用:把輸出的一個副本輸送到標准輸出,另一個副本拷貝到相應的文件中。
tee -a file
-a:追加到文件末尾。
[開發]/usr/xxxx/ytcclb>who | tee who.out
將who命令查找到的數據保存到who.out文件中。

文件重定向:
command > filename 把標准輸出重定向到一個新文件中
command >> filename 把標准輸出重定向到一個文件中(追加)
command 1 > fielname 把標准輸出重定向到一個文件中
command > filename 2>&1 把標准輸出和標准錯誤一起重定向到一個文件中
command 2 > filename 把標准錯誤重定向到一個文件中
command 2 >> filename 把標准輸出重定向到一個文件中(追加)
command >> filename 2>&1 把標准輸出和標准錯誤一起重定向到一個文件中(追加)
command < filename >filename2 把command命令以filename文件作為標准輸入,
以filename2文件作為標准輸出
command < filename 把command命令以filename文件作為標准輸入
command << delimiter 把從標准輸入中讀入,直至遇到delimiter分界符
command <&m 把文件描述符m作為標准輸入
command >&m 把標准輸出重定向到文件描述符m中
command <&- 把關閉標准輸入

重定向標准輸出
1.將很多命令的輸出追加到一個文件中
ls -l | grep ^d >>files.out
ls account* >> files.out

[開發]/usr/xxxx/ytcclb>ls -l null.txt
-rw-r--r-- 1 xxxx group 3 Nov 15 16:07 null.txt
[開發]/usr/xxxx/ytcclb>chmod u +x null.txt
chmod: WARNING: cannot access +x: No such file or directory (error 2)
u與+x之間有空格!
[開發]/usr/xxxx/ytcclb>chmod u+x null.txt
[開發]/usr/xxxx/ytcclb>ls -l null.txt
-rwxr--r-- 1 xxxx group 3 Nov 15 16:07 null.txt

copyright © 萬盛學電腦網 all rights reserved