forループはファイルのn番目の位置を繰り返します。

forループはファイルのn番目の位置を繰り返します。

Unixのforループでn番目のファイルを繰り返すには?以下は、成功せずに試したいくつかのコードです。

#!/bin/bash
#
n=2
array=( "CTL_MLPOSDTLP1_1.ctl" "CTL_MLPOSDTLP1_2.ctl" "CTL_MLPOSDTLP1_3.ctl" )
for x in "${array[@]}"
for ((x=${array[@]}; x<=n; x++));
do
echo "array[x]"
done

ベストアンサー1

配列を繰り返す2つの方法は次のとおりです。

#!/bin/bash
array=( "CTL_MLPOSDTLP1_1.ctl" "CTL_MLPOSDTLP1_2.ctl" "CTL_MLPOSDTLP1_3.ctl" )

echo Loop 1
for x in "${array[@]}"
do
    echo "$x"
done

echo Loop 2
for ((x=0; x<${#array[@]}; x++));
do
    echo "${array[x]}"
done

選択した項目を循環

このスクリプトを使用すると、処理する配列要素をコマンドラインで指定できます。

#!/bin/bash
array=( "CTL_MLPOSDTLP1_1.ctl" "CTL_MLPOSDTLP1_2.ctl" "CTL_MLPOSDTLP1_3.ctl" )

for x in "$@"
do
    echo "${array[x]}"
done

最初の2つは繰り返し、3番目はスキップしたいとします。 (0 ベースの索引付けのため、bash最初の 2 つは数字 0 と数字 1 です。) 以下を使用します。

$ bash script.sh 0 1
CTL_MLPOSDTLP1_1.ctl
CTL_MLPOSDTLP1_2.ctl

3番目の項目を実行してください。

$ bash s.sh 2
CTL_MLPOSDTLP1_3.ctl

0からまで繰り返すn-1

for ((x=0; x<n; x++));
do
    echo "${array[x]}"
done

おすすめ記事