我正在尝试调试一个更大的osascript 'do shell script‘程序,并且已经将问题缩小到一个我根本不理解的更短的重现案例。这是一个重现案例:
osascript -e 'do shell script "echo 123; echo 45; echo 6"'给出了输出:
653有人能解释这是怎么回事吗?这几乎就像'do shell script‘不能正确处理行结束,或者试图在一行上打印所有内容。
发布于 2021-10-29 18:30:25
在读取shell脚本的输出时,Applescript将\n字符替换为\r字符。您可以通过通过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'有关详细信息,请参阅Technical Note TN2065。
https://stackoverflow.com/questions/69773212
复制相似问题