GNU/Linux >> Linux の 問題 >  >> Linux

bash:リスト ファイルを変数に入れますが、配列のサイズは 1 です

( で囲まない限り、配列を作成していません ) :

dirlist=(`ls ${prefix}*.text`)

ファイルの配列を宣言します:

arr=(~/myDir/*)

カウンターを使用して配列を反復処理:

for ((i=0; i < ${#arr[@]}; i++)); do

  # [do something to each element of array]

  echo "${arr[$i]}"
done

これ:

dirlist=`ls ${prefix}*.text`

配列を作成しません。スペースで区切られたファイル名を持つ文字列のみを作成します。

あなたがしなければならない

dirlist=(`ls ${prefix}*.text`)

配列にします。

次に $dirlist 最初の要素のみを参照するため、使用する必要があります

${dirlist[*]}

ループ内でそれらすべてを参照します。


Linux
  1. 各ファイルとディレクトリのサイズを一覧表示し、Bash で降順で並べ替える方法は?

  2. awk の bash キャプチャ出力を配列に

  3. を除くすべてのファイルを一覧表示するコマンド。 (ドット) と .. (ドット ドット)

  1. Bash変数代入の単一括弧?

  2. サイズと拡張子でファイルを検索する方法は?

  3. bash - すべてのディレクトリ (およびコンテンツ) を削除しますが、pwd 内のファイルは削除しません

  1. Bash のリストに変数が存在するかどうかを確認する

  2. grep を bash の変数に渡す

  3. bash:配列の環境変数を設定し、それをシェル スクリプトから参照解除すると失敗する