我有一个 bash 脚本,涉及yad
.默认情况下,yad
输出结果由管道字符“ |
”分隔。
我有一个字符串变量output
。回显它表明它包含以下内容:
/dev/sde|
name0|name1|name2|
我希望所有这些竖线都改为换行符。
这不起作用:echo "$output" | tr '|' '\n'
这也不起作用:echo "$output" > /tmp/output; echo $(cut -d'|' -f1 < /tmp/output)
两次尝试都只会输出换行符。/tmp/output
创建后,它包含两个空行,但不包含任何文本。
答案1
你的tr应该没问题。
尝试逃跑"\|"
答案2
我终于弄清楚发生了什么事:变量设置不正确。缩短:
yad --plug=12345 --tabnum=1 &
yad --plug=12345 --tabnum=2 &
output="$(yad --notebook --key=12345)"
echo "$output"
$output
自从结果打印到终端以来,似乎已经得到回显。
但去除回声并没有效果。然后我意识到前两个命令是输出数据的命令,不是第三个外部yad
命令。
移动output="$(
到第一个 yad 命令的开头解决了空变量的问题。
而且,我浏览man yad
并发现有一个 cli 标志正是我想要的:
--separator='\n'