$1 - 1 サイクルの for ループを作成する方法

$1 - 1 サイクルの for ループを作成する方法

私はバブルソートアルゴリズムを作成するために「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
}

「バブルソート」スクリプト全体を投稿するか、質問を明確にしてください。

関連情報