
我正在嘗試製作 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
}
請完整發佈您的「冒泡排序」腳本,或澄清您的問題。