【发布时间】:2020-10-10 08:32:17
【问题描述】:
我正在编写如下代码 sn-p:
while IFS=$': \r\t' read -r -u9 marker v; do
case $marker in
Release)
export RELEASE=$v
;;
esac
done 9< <(git show -s --format=%b)
但我看到$v 仍然包含\r。从https://bash.cyberciti.biz/guide/$IFS,我读到A sequence of IFS whitespace characters is also treated as a delimiter. 我不应该从行中删除尾随\r 吗?
【问题讨论】:
-
如果输入中有超过 2 个字段,则第二个和所有后续字段进入
$v,包括分隔符。 -
谢谢。有没有一种干净的方法来实现我在这里尝试做的事情?
-
在进程替换中将
git命令传递给tr -d '\r',然后尝试不使用\r的IFS -
你确定这是在 bash 下运行的吗?出于某种原因,zsh 在这种情况下似乎没有修剪回车。