dir1という新しいディレクトリを作成しました。
その後、タッチコマンドを使用してリンゴバナナニンジンナツメ卵魚ブドウハムを追加しました。
その後、ファイルを作成しましたWildcards.sh
(btw、nanoを使用してファイルを作成します)。
#!/bin/bash
# This script will include wildcards
find . dir1
echo The contents of dir1 are:$find
echo
次に、実行して動作するかどうかをテストします。しかし、私はそうしたくありません。
私はそれを次のように実行します./Wildcards.sh
そして得た
.
./ham
./egg
./grape
./date
./Wildcards.sh
./apple
./fish
./carrot
./banana
find: 'dir1': No such file or directory
The contents of dir1 are:
出力は次のようになります。
The contents of dir1 are: apple banana carrot date egg fish grape ham
私の間違いを見つけるのを手伝ってください。
答え1
dir1が作業ディレクトリの場合、dir1が見つかりません。 「$find」変数には何も入れないでください。
FIND=$(cd ~/dir1; echo *)
echo "The contents of dir1 are: $FIND"
ホームフォルダの作業ディレクトリをdir1に変更し、bashに隠されていないすべてのアイテム( "*")を表示させます。結果はFIND変数に保存されます(ただし、エラーがある場合はFINDにも保存されます)。隠しファイルとディレクトリも必要な場合は、次のようにします。
FIND=$(cd ~/dir1; echo .* *)
答え2
来てみてください
result=$(find ~/dir1)
echo "The contents of dir1 are: $result"
または
echo "The contents of dir1 are: $(find ~/dir1)"
分解:
(私が間違っている場合は許してください。私はBashに最適ではありません。)
result=$(find ~/dir1)
実行しfind ~/dir1
てからresult
sに保存し、s$(command)
内でコマンドを実行()
し、コマンドのSTDOUT(コマンドの標準出力/出力)を一時変数として使用します。代わりに、これを
使用して次のことを行うこともできます。役に立つことを願っています。形式が良くない点ご了承ください。これは最初の投稿です。 :P${result}
echo "${result}asdf"
答え3
記載されていない他の要件がない場合、必要な行は次のとおりです。
echo The contents of dir1 are:$(ls dir1)
Bashスクリプトで使用するか、コマンドラインから直接使用できます。たとえば、後で使用する目的でファイル名を変数に入れるには、次のようにします。
files=$(ls Wallpapers)
echo The contents of dir1 are:$files
答え4
あなたのスクリプトが修正されました。
#!/bin/bash
# This script has no wildcards
find_output="$(find dir1)"
echo 'The contents of dir1 are:'"$find_output"
echo
既存の回答にすべてエラーがあり、別の回答を追加する必要があると思いました。
いくつかのエラーは次のとおりです。
- プロセスの出力が変数に入力されると仮定しているようです。要求しない限り、これはありません。
find
.
最初の引数としてaは必要ありません。はい、よくありますが…- 次の問題は、引用符を使用する必要があることです。私はこれがまだエラーを起こしているとは思わない。一部の人々は、すべての引用が必ずしも必要ではないと言うでしょう。それは正しいです。ただし、これは安全で、完全にマスターするまで含めることができます。後で含めることもできます。
- もしそうなら、あなたのコメントは正しくありません。私はレビューがほとんど常に間違っているので嫌いです。コメントは理由だけを説明できたり、言語が弱すぎて意図を明確に表現できない場合に使用されます。
シェル変数ケースに関する注意事項です。
シェル変数は小文字でなければなりません。これには標準があります。大文字で作成すると、予期しないエラーが発生することがあります。