关于特定字符串的测试命令替换有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 ]
我有没有错过这里?
答案 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