このスクリプトがホームディレクトリのファイル名を印刷しない理由を教えてください。シェルスクリプト:forループでファイルが印刷されない
#!/bin/bash
d="$HOME"
for f in $d
do
echo "$f"
done
このスクリプトがホームディレクトリのファイル名を印刷しない理由を教えてください。シェルスクリプト:forループでファイルが印刷されない
#!/bin/bash
d="$HOME"
for f in $d
do
echo "$f"
done
$HOME
例えば、起動したユーザのホームディレクトリに展開/home/foobar
なので、変数d
にはこの文字列だけが含まれ、ディレクトリ内には含まれません。あなたは、配列活用できる
:配列files
は$HOME
"${files[@]}"
内のコンテンツの名前が配列files
の要素に展開含まれています
#!/bin/bash
files=("$HOME"/*)
for f in "${files[@]}"; do
echo "$f"
done
を、引用符があります単語の分割を防ぐために重要であり、シェルによるパス名の展開
我々はfor
ループ
を使用して配列の要素を反復している私は、 ' "$ dの"/ *'で '$のD 'を交換することをお勧めします。 – Cyrus