我正在嘗試除錯一個更大的 osascript 'do shell script' 程式,并將問題縮小到一個我根本不理解的更短的重現案例。這是重現案例:
osascript -e 'do shell script "echo 123; echo 45; echo 6"'
給我輸出:
653
任何人都可以解釋發生了什么?這幾乎就像'do shell script'沒有正確處理行尾,或者試圖在一行上列印所有內容。
uj5u.com熱心網友回復:
Applescript 在讀取 shell 腳本的輸出時用 \r 字符替換 \n 字符。您可以通過以下方式運行輸出來判斷正在發生的情況od -c:
$ osascript -e 'do shell script "echo 123; echo 45; echo 6"' | od -c
0000000 1 2 3 \r 4 5 \r 6 \n
0000011
要關閉此功能,請使用該without altering line endings引數。
osascript -e 'do shell script "echo 123; echo 45; echo 6" without altering line endings'
有關更多資訊,請參閱技術說明 TN2065。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/341824.html
