バブルソートアルゴリズムを作成するために「sed」を使用するshスクリプトを作成しようとしています。
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
}
「バブルソート」スクリプト全体を投稿するか、質問を明確にしてください。