CocoaDialog文本框显示第一行

时间:2013-08-14 03:01:41

标签: macos cocoa bash dialog zenity

我正在尝试将脚本的输出添加到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”

有什么想法吗?

干杯

1 个答案:

答案 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