我正在尝试将脚本的输出添加到CocoaDialog文本框中 - 问题是 - 它只打印第一行....
例如 - 请参阅以下内容:
$ cat TEST.txt
i
am
legend
$ /Applications/CocoaDialog.app/Contents/MacOS/CocoaDialog textbox --debug --text `while read line; do echo $line; done < TEST.txt` --button1 "Close"
运行后,输出只是“i”
有什么想法吗?
干杯
答案 0 :(得分:1)
将`while read line; do echo $line; done < TEST.txt`
替换为"`while read line; do echo $line; done < TEST.txt`"
,或最好是"$(<TEST.txt)"
。
read
从行的开头和结尾开始IFS
中的字符。 read
也会在没有-r
的情况下解释反斜杠。 echo $line
剥离并折叠IFS
中的字符。
$ echo ' aa a\\a'|while read l;do echo $l;done
aa a\a
$ echo ' aa a\\a'|while read l;do echo "$l";done
aa a\a
$ echo ' aa a\\a'|while read -r l;do echo "$l";done
aa a\\a
$ echo ' aa a\\a'|while IFS= read -r l;do echo "$l";done
aa a\\a