我解析avahi浏览工具的输出,我的脚本应该是POSIX兼容的。POSIX shell中的换行符
我做下一方式:
local _dnssd=`avahi-browse -apt`
if [ -z "$_dnssd" ]; then
echo "No info"
else
IFS='
' # it's new line character in IFS
for _row in $_dnssd
do
local _tmpIFP="$IFS"
IFS=";"
case "$_row" in
...
esac
IFS="$_tmpIFS"
done
fi
我真的不喜欢新行分配IFS线。有没有可能以更好的方式取代它?
我试图从计算器一些建议,但它不工作:
IFS=$(echo -e '\n')
的avahi浏览的输出:
+;br0;IPv4;switch4B66E4;_http._tcp;local
+;br0;IPv4;switch4B66E4;_csco-sb._tcp;local
我想你可以使用'IFS = $'\ n'' – fedorqui
fedorqui,我不能使用任何bashism。它将在POSIX shell上执行。 – Jurasic
'本地'也不是POSIX shell的一部分。 – chepner