如果 fish 不能将变量用作语法中的值怎么办
What to do if fish can't use variable as value in for grammar
例如
set -g hi "lol lol 123 321"
For I in $hi
echo $hi
end
直接输出$hi
你这里有很多问题:
- 是为了,不是为了。
- $hi 是一个只有一个元素的变量,所以 运行 for 循环在这里没有多大意义。大概你想把它设置成 set -g hi lol lol 123 321 不带引号
- 在(假设的)for 循环中,您正在打印 $hi,而不是循环变量 - 这可能应该是 echo $I。
让我们用这里的值替换 $hi:
for I in "lol lol 123 321"
echo "lol lol 123 321"
end
看看如何打印 lol lol 123 321
一次? Fish 不进行分词,因此如果您将 $hi 设置为 "lol lol 123 321"
,那么当您使用不带引号的变量时将使用该值。所以这就像我们刚刚在这里完成的。
fish 不可能“将此变量用作语法的值”。它使用您告诉它的变量。
我想你的意思是
set -g hi lol lol 123 321
for I in $hi
echo $I
end
这将打印
lol
lol
123
321
看看这如何设置不带引号的 $hi,所以它现在是四个独立的元素?它还在循环中使用实际的循环变量。
例如
set -g hi "lol lol 123 321"
For I in $hi
echo $hi
end
直接输出$hi
你这里有很多问题:
- 是为了,不是为了。
- $hi 是一个只有一个元素的变量,所以 运行 for 循环在这里没有多大意义。大概你想把它设置成 set -g hi lol lol 123 321 不带引号
- 在(假设的)for 循环中,您正在打印 $hi,而不是循环变量 - 这可能应该是 echo $I。
让我们用这里的值替换 $hi:
for I in "lol lol 123 321"
echo "lol lol 123 321"
end
看看如何打印 lol lol 123 321
一次? Fish 不进行分词,因此如果您将 $hi 设置为 "lol lol 123 321"
,那么当您使用不带引号的变量时将使用该值。所以这就像我们刚刚在这里完成的。
fish 不可能“将此变量用作语法的值”。它使用您告诉它的变量。
我想你的意思是
set -g hi lol lol 123 321
for I in $hi
echo $I
end
这将打印
lol
lol
123
321
看看这如何设置不带引号的 $hi,所以它现在是四个独立的元素?它还在循环中使用实际的循环变量。