在 fish 中测试命令替换输出
Testing command substitution output in fish
有 another question 关于测试 特定 字符串的命令替换。我想测试一个命令是否在单个语句中输出 anything,即相当于:
if [[ -n "$(foo)" ]]
在 bash 中。鱼不认识 [[]]
,
if [ -n "(foo)" ] # No good, "(foo)" is literal.
if [ -n (foo) ] # Passes only if (foo) == "\n" because of test semantics.
行不通,我必须
set check (foo)
if [ -n "$check ]
有没有可能我错过了这里?
据我所知,在 Fish 中无法使用字符串替换。
您可以关注 #159 issue 以获取有关当前解决方案的更多信息。
这应该有效:
if count (foo) > /dev/null
在鱼中,我们必须使用 test
而不是 [
或 [[
if test -n (foo)
echo not empty
end
或者,bash [[ -n $(foo) ]] && echo not empty
等价于
test -n (foo); and echo not empty
有 another question 关于测试 特定 字符串的命令替换。我想测试一个命令是否在单个语句中输出 anything,即相当于:
if [[ -n "$(foo)" ]]
在 bash 中。鱼不认识 [[]]
,
if [ -n "(foo)" ] # No good, "(foo)" is literal.
if [ -n (foo) ] # Passes only if (foo) == "\n" because of test semantics.
行不通,我必须
set check (foo)
if [ -n "$check ]
有没有可能我错过了这里?
据我所知,在 Fish 中无法使用字符串替换。
您可以关注 #159 issue 以获取有关当前解决方案的更多信息。
这应该有效:
if count (foo) > /dev/null
在鱼中,我们必须使用 test
而不是 [
或 [[
if test -n (foo)
echo not empty
end
或者,bash [[ -n $(foo) ]] && echo not empty
等价于
test -n (foo); and echo not empty