测试鱼中的命令替换输出

时间:2015-03-11 09:17:47

标签: fish

关于特定字符串的测试命令替换有another question。我想测试命令是否在单个语句中输出任何,即相当于:

if [[ -n "$(foo)" ]]

在bash中。 Fish无法识别[[]]

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 ]

我有没有错过这里?

3 个答案:

答案 0 :(得分:4)

这应该有效:

if count (foo) > /dev/null

答案 1 :(得分:1)

据我所知,没有办法在Fish中使用字符串替换。

您可以关注#159 issue以获取有关当前解决方案的更多信息。

答案 2 :(得分:1)

在鱼类中,我们必须使用test代替[[[

if test -n (foo)
  echo not empty
end

或者,等同于bash [[ -n $(foo) ]] && echo not empty

test -n (foo); and echo not empty