測試遠程訪問,我有以下命令來檢查,如果遠程客戶端許可證使用ssh登錄,而無需通過使用ssh
ssh -o PasswordAuthentication=no \
[email protected]$REMOTE_HOST_IP 1>/dev/null 2>/dev/null
,執行指令,如果permission=no
我在代碼的其餘部分設置權限。順便說一句,「許可被拒絕的消息被髮送到/ dev/null」。但是當我第二次執行我的命令時,這一次permission=yes
和我必須登錄到機器,但它掛起,因爲我認爲沒有錯誤或輸出。因爲我試過它,就像我獲得代碼權限一樣;
ssh -o PasswordAuthentication=no [email protected]$REMOTE_HOST_IP
這次工作。
那麼,如何安排它發送錯誤消息的第一時間,而不是在休息
編輯發:我可以解釋簡單,我的questin是,說我在我的腳本命令可以給出錯誤我第一次運行我的腳本,所以我不希望看到erorrs和輸出,我運行它
command 1>/dev/null 2>/dev/null(it is in my script)
當我運行腳本第二次,該命令將不給錯誤和輸出becaue我做了一些操作,所以它沒有錯誤。但是當它第二次運行時,它會掛起/ dev/null(我認爲是這樣)。因爲當它在沒有/ dev/null的情況下運行時,它工作正常
第一個命令中沒有輸出或錯誤消息,因爲您將STDOUT和STDERR都發送到/ dev/null,這是數據接收器,所有內容都被丟棄。 我不明白你的問題的其餘部分。請澄清。 – mpe 2012-08-14 09:29:31
@mpe是沒有錯誤信息在我發送的第一個原因。但在deffaault它必須給予權限被拒絕的消息,所以我發送到dev null.at我有權限的腳本的其餘部分。當我第二次運行腳本。該命令掛起因爲沒有錯誤消息,因爲我有證書到達client.so我需要第二次工作命令 – barp 2012-08-14 09:33:01
注意:'>/dev/null 2>&1'是'1>/dev的常見習慣用法/ null 2>/dev/null'。在極少數情況下,我會使用'>& - 2> & -';這實際上會關閉fd 1和2 - 但謹慎使用 - 不是所有類似的命令。 – 2012-08-14 11:19:48