【发布时间】:2019-02-27 22:55:49
【问题描述】:
我尝试以 POSIX 方式编写脚本,没有任何 bashism。而且我遇到了以下我自己无法解决的问题:
-
我知道这是一个愚蠢的问题,但到目前为止我还不太明白如何将这两个命令组合在一起。
printf ' Port: ' printf %s "$request" | xmllint --xpath 'string(/Server/Port)' -有可能吗?
-
我的脚本中有以下块:
printf '\n\n\nGo? (Y) ' read -n 1 y printf '\n\n' case $y in y|Y ) printf %s "$request" | xmllint --format - ; printf '\n';; esac但是,在 POSIX 中,
-n中的read -n 1 y是未定义的。是否可以以 POSIX 方式进行?
【问题讨论】:
-
在 2 个单独的问题中提出两个问题。另外,Q1 中的“组合”是什么意思?
-
我认为他们想要
echo " Port: $( echo -n "$request" | xmllint --xpath 'string(/Server/Port)' - )"之类的东西,但在 POSIX 而不是 Bash 中。 -
@choroba 类似: printf ' 端口: ' %s "$request" | xmllint --xpath 'string(/Server/Port)' -
-
@ChaiT.Rex 对。