當我輸入某個命令時,有時我會得到如下所示的輸出。
>
>
>
>
> 符號到底指的是什麼。
答案1
您的案例
在這種情況下,“>”符號意味著終端在您點擊後需要更多輸入進入鑰匙。
就您而言,您有一個尚未關閉的字串。例如,如果我輸入以下命令echo "Hello
,然後按 Enter,它會給我一個“>”,直到我關閉該字串。例子:
如果我輸入:
eric@Ubuntu: /home/eric$ echo "Hello
>what?
>single quotes won't close it?'
>but double quotes will! "
它將列印出以下輸出:
Hello
what?
single quotes won't close it?'
but double quotes will! "
這允許您擁有跨越多行的字串,而無需明確鍵入“\n”換行符。
額外的信息
事實上,該提示符號會列印出“>”,而不是由$PS2
環境變數設定其他內容。如果您設定$PS2
為其他內容,那麼系統會提示您。
顯示此提示的另一種方法是在行末尾添加反斜線(“\”)。它基本上將兩行連接在一起,例如以下兩行:
eric@Ubuntu: /home/eric$echo "Hello \
>There my friend"
將被處理為eric@Ubuntu: /home/eric$echo "Hello There my friend"
並且只是輸出Hello There my friend
。
這兩種方法都用於以更具可讀性的方式格式化程式碼。最初幾次看到它可能會令人沮喪,因為您並不真正知道是什麼原因導致的,但是當嘗試編寫更長的程式碼或程式碼的輸出可讀時,它們都會派上用場。
答案2
管道也可用於將資訊附加到文件中,例如,如果您要在終端機中鍵入以下內容
echo "Test Line" > test.txt
這會將 test.txt 檔案的內容設為“測試行”,並在末尾新增換行符。如果該文件尚不存在,則會建立該文件。
echo "Test Line" >> test.txt
這會將「測試行」和換行符號新增至 test.txt 檔案的結尾(如果存在)。如果它不存在,那麼文件將被創建為空,然後這一行將被添加到其中。
答案3
>
意味著將流重定向到
>>
意味著重定向到但在最後
它僅適用於標準輸出
而2>
適用於標準錯誤,顯然使用1>
與>
標準輸出是正常程式的輸出,標準錯誤是程式的錯誤輸出。所以有兩個輸出。您可以使用重定向兩個輸出&>