shell中的輸入輸出

2021-10-12 05:31:43 字數 2269 閱讀 5910

參考:菜鳥教程、linux中編寫shell指令碼、linux 的基本操作(編寫shell 指令碼)

【語法格式】

read [引數] [變數名]

【常用引數】

-p:指定讀取值時的提示符;

-t:指定讀取值時等待的時間(秒)。

echo string可以用來輸出字串。可以輸出轉義字元和變數;還可以輸出到指定檔案和輸出執行結果

echo "\"it is a test\""

echo "$name it is a test"

echo -e "ok! \c" # -e 開啟轉義 \c 不換行

echo "it is a test"

echo "it is a test" > myfile

echo `date`

標準格式:printf format-string [arguments...]

format-string: 為格式控制字串

arguments: 為引數列表。

printf

"hello, shell\n"

printf

"%-10s %-8s %-4s\n" 姓名 性別 體重kg

printf

"%-10s %-8s %-4.2f\n" 郭靖 男 66.1234

printf

"%-10s %-8s %-4.2f\n" 楊過 男 48.6543

printf

"%-10s %-8s %-4.2f\n" 郭芙 女 47.9876

#執行結果

姓名 性別 體重kg

郭靖 男 66.12

楊過 男 48.65

郭芙 女 47.99

命令

說明command > file

將輸出重定向到 file。

command < file

將輸入重定向到 file。

command >> file

將輸出以追加的方式重定向到 file。

n > file

將檔案描述符為 n 的檔案重定向到 file。

n >> file

將檔案描述符為 n 的檔案以追加的方式重定向到 file。

n >& m

將輸出檔案 m 和 n 合併。

n <& m

將輸入檔案 m 和 n 合併。

<< tag

將開始標記 tag 和結束標記 tag 之間的內容作為輸入。

#執行下面的 who 命令,它將命令的完整的輸出重定向在使用者檔案中(users):

who>

users

一般情況下,每個 unix/linux 命令執行時都會開啟三個檔案:

需要注意的是檔案描述符 0 通常是標準輸入(stdin),1 是標準輸出(stdout),2 是標準錯誤輸出(stderr)。 預設情況下,command > file 將 stdout 重定向到 file,command < file 將stdin 重定向到 file。

如果希望 stderr 重定向到 file,可以這樣寫:

command 2>file #2與》不能存在空格
如果希望將 stdout 和 stderr 合併後重定向到 file,可以這樣寫:

command > file 2>&1

# 或者

command >> file 2>&1

如果希望對 stdin 和 stdout 都重定向,command 命令將 stdin 重定向到 file1,將 stdout 重定向到 file2,可以這樣寫:

command < file1 >file2
如果希望執行某個命令,但又不希望在螢幕上顯示輸出結果,那麼可以將輸出重定向到 /dev/null。/dev/null 是乙個特殊的檔案,寫入到它的內容都會被丟棄;如果嘗試從該檔案讀取內容,那麼什麼也讀不到。但是 /dev/null 檔案非常有用,將命令的輸出重定向到它,會起到"禁止輸出"的效果。

command > /dev/null
如果希望遮蔽 stdout 和 stderr,可以這樣寫:

command > /dev/null 2>&1

Shell輸入輸出

重定向至檔案 echo用於顯示,read用於讀入,其中person是變數名字,shell中變數用字使用的時候用 框起來 input and output echo what s your name?read person echo hello,效果如下圖 顯示轉義字元 echo it is a te...

shell 輸入輸出

標準輸入 stdin 0,或者 鍵盤 標準輸出 stdout 1,或者 終端顯示器 標準錯誤輸出 stderr 2,2 或者2 指令執行失敗返回的錯誤資訊,終端顯示器 將輸出結果重定向到檔案中 1.覆蓋到檔案中 command outputfile 檔案的完整路徑 兩邊需要空格 2.追加到檔案中 新...

Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...