osascript 'do shell script' 行结尾
osascript 'do shell script' line endings
我正在尝试调试一个更大的 osascript 'do shell script' 程序,并将问题缩小到一个我根本不理解的更短的重现案例。这是重现案例:
osascript -e 'do shell script "echo 123; echo 45; echo 6"'
给我输出:
653
谁能解释一下这是怎么回事?这几乎就像 'do shell script' 没有正确处理行尾,或者试图在一行上打印所有内容。
Applescript 在读取 shell 脚本的输出时将 \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。
我正在尝试调试一个更大的 osascript 'do shell script' 程序,并将问题缩小到一个我根本不理解的更短的重现案例。这是重现案例:
osascript -e 'do shell script "echo 123; echo 45; echo 6"'
给我输出:
653
谁能解释一下这是怎么回事?这几乎就像 'do shell script' 没有正确处理行尾,或者试图在一行上打印所有内容。
Applescript 在读取 shell 脚本的输出时将 \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。