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