0
我有一个使用端到端的传输字符作为IFS Bourne shell脚本:结束传输字符作为IFS
ASCII_EOT=`echo -e '\004'`
while IFS="$ASCII_EOT" read DEST PASSWORD; do
...
done
怎样的EOT表现为一个IFS?或者read
期望什么样的输入?
我有一个使用端到端的传输字符作为IFS Bourne shell脚本:结束传输字符作为IFS
ASCII_EOT=`echo -e '\004'`
while IFS="$ASCII_EOT" read DEST PASSWORD; do
...
done
怎样的EOT表现为一个IFS?或者read
期望什么样的输入?
它是一个ASCII字符,就像,
;它只是不可打印。
$ printf 'foo\004bar' > tmp.txt
$ hexdump -C tmp.txt
00000000 66 6f 6f 04 62 61 72 0a |foo.bar.|
00000008
$ IFS=$(printf '\004') read f1 f2 < tmp.txt
$ echo "$f1"
foo
$ echo "$f2"
bar
您确定它是Bourne shell脚本吗? 'echo -e'意味着你使用'bash'或者外部的GNU'echo'二进制文件,在这种情况下,假设你可以使用'bash'来代替。 – chepner