Mount
mount cifs:如何從終端檢索命令執行的狀態?
以下
mount cifs
程式碼工作正常:sudo mount -t cifs //192.168.1.77/something /mnt/192.168.1.77/something \ -o username=alpha,rw,uid=alpha,gid=tango,dir_mode=0770,file_mode=0770,nounix,sec=ntlmssp
通過在終端中執行的 shell 腳本出現一個新行:
� Password for alpha@//192.168.1.77/something:
如果密碼正確,則終端不會寫入/放置/顯示任何內容,並且目錄已按預期掛載。但是如果密碼不正確,它會顯示
mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
我想創建一個循環迭代始終 while: 如果終端中出現任何錯誤消息以再次執行命令並因此要求輸入密碼。當然,如果密碼正確並且
mount cifs
返回的內容表明一切正常,則必須停止循環。如何做到這一點?我試過命令替換:
result=$(sudo mount -t cifs //192.168.1.77/something /mnt/192.168.1.77/something \ -o username=alpha,rw,uid=alpha,gid=tango,dir_mode=0770,file_mode=0770,nounix,sec=ntlmssp) echo "result: '${result}'"
並發生以下情況:
# Valid password scenario � Password for alpha@//192.168.1.77/something: result: '' # Invalid password scenario � Password for alpha@//192.168.1.77/something: mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg) result: ''
即使使用命令替換,您也無法看到預期的效果。結果變數總是為空。
不確定是否存在
mount cifs
該啟用的參數返回一些東西然後讓結果變數顯示一些東西
為什麼不只測試$?它應該包含 mount 的退出程式碼,在這種情況下應該是 13 或 0 如果成功。
如果您想要一條錯誤消息,請執行
errno $?
,儘管您可能必須errno
從某個軟體包進行安裝。