Bash言語でファイルパスのリストをどのように定義しますか?

Bash言語でファイルパスのリストをどのように定義しますか?

Bash言語でパスリストを定義する方法は?

次のようなものが必要です。

list_of_paths = ["$Home/MyDir/test.c", "$Home/YourDir/file.c"]

答え1

bash次のコマンドを使用して配列を作成できます

mypaths=( "/my/first/path" "/my/second/path" )

配列の要素は個別に割り当てることもできます。

mypaths[0]="/my/first/path"
mypaths[1]="/my/second/path" 

周囲にはスペースを入れないでください=

これについては、マニュアルの「アレイ」セクションに説明されていますbash

配列を使用して下さい:

printf 'The 1st path is %s\n' "${mypaths[0]}"
printf 'The 2nd path is %s\n' "${mypaths[1]}"

for thepath in "${mypaths[@]}"; do
    # use "$thepath" here
done

代替/bin/shbash他の同様shのシェルでも機能します):

set -- "/my/first/path" "/my/second/path"

printf 'The 1st path is %s\n' "$1"
printf 'The 2nd path is %s\n' "$2"

for thepath do
    # use "$thepath" here
done

/bin/sh$1これは、位置引数リスト($2など$3、または集合的に)のシェルの配列のみを使用します$@。このリストには通常、スクリプトまたはシェル関数のコマンドライン引数が含まれていますが、スクリプトで使用することもできますset

最後のループは次のように書くこともできます。

for thepath in "$@"; do
    # use "$thepath" here
done

各変数拡張参照が重要です。

関連情報