在 POSIX sh 中,是否可以检测for
循环内循环的最后一次迭代?
我正在尝试填写此示例代码中的空白:
#!/bin/sh
items='1 2 3'
for item in $items; do
echo "$item"
# TODO:
# How do I check whether or not this is the last iteration?
done
在 POSIX sh 中,是否可以检测for
循环内循环的最后一次迭代?
我正在尝试填写此示例代码中的空白:
#!/bin/sh
items='1 2 3'
for item in $items; do
echo "$item"
# TODO:
# How do I check whether or not this is the last iteration?
done
将一个字符串存储在一个标量变量中,然后该字符串由于未加引号的扩展
$items
而在下一行受到 IFS 拆分 + 通配。$items
要存储多个值,您需要使用数组变量。
POSIX
sh
没有数组,但它有位置参数,这甚至是for
默认情况下循环的内容:或者:
如果您仍然想 split+glob 一个空格分隔的
$items
变量,您仍然可以这样做:或者,如果您不想破坏脚本的位置参数,请使用一个函数(它有自己的一组位置参数):