我正在尝试制作 sh 脚本,它使用“sed”来制作冒泡排序算法
我很苦恼,如何制作for循环
for n in $1
do
echo $n
done
如何更改 for 循环的主体以仅生成n-1
循环?我尝试过这个$1-1
,但它不起作用。它将打印字符串的一部分和 - 1。
答案1
n-1 个周期意味着不应考虑最后一项。
使用以下方法(假设您的输入参数始终是一串以空格分隔的子字符串):
s=$1
for n in ${s:0:-2}
do
echo $n
done
${s:0:-2}
- 包含除最后一项之外的所有项目的项目切片
^ ^
| |
from to
答案2
使用
for i in "$@" ; do echo $i ; done
您不需要报价 1 美元,没有必要。
编辑:我误解了。如果您希望打印 $1-1,echo $(( $i-1 ))
如果您尝试迭代 i-1 次,请使用以下修改:
for ((i=1; i<=3; i++))
{
echo $x
}
请完整发布您的“冒泡排序”脚本,或澄清您的问题。