まあ、私は現在、初心者シェルスクリプトです。私は、HTML、JScript、VB.NET、C++のJavascriptなど、他のプログラミング言語に関する基礎知識を持っています。 (そうではなく、私の足を水に浸しただけです)。最近の私の最近のプロジェクトでは、Bashシェルスクリプトについてできる限り学びたいと考えています。現在の問題は、状態エラーコードを理解することと、特定のパラメータにディレクトリが含まれているかどうか、またはディレクトリが存在するかどうかを確認することです。私はチュートリアルとレビューの質問で、本から取り組んでいます。残念なことに、答えのキーはありません。また、そのことについてのヒントもありません。BASHスクリプトヘルプが必要です
- 表示状態1とエラーメッセージを表示して終了ソースディレクトリ
- ない場合は、パラメータは、
- 表示をステータス2とエラーメッセージを表示して終了を与えられていない場合、ステータス3とのエラーメッセージを表示して終了宛先が存在しないか、ディレクトリでない場合
上記のことは、これまでのところ私が正しくやっていると信じている最初のものです。正しくない場合は、私を修正してください。 。サンプルが与えられたときに私が最もよく学ぶように、私は助けを求めるだろうと思った。
if [ $? ]; then
echo "You must supply at least one parameter"
exit 1
fi
#The above is the part I am pretty sure is correct.
if [ $? -d $directory "$1" ]; then
echo "$directory is not a directory"
exit 2
fi
#The above was self written. I am almost positive it is wrong.
if [ $? -lt 2 ]; then
set "$1" .pwd
fi
#the above was given to me from the book as a reference point to start (tutorial)
'if'と' [''の間にはスペースが必要です。フィールドの分割とパス名の生成を避けるには、 '$ 1'と' $ 2'を引用符で囲む必要があります。 '||'はコマンドを区切って 'if [! -e "$ 2"] || [! -d "$ 2"]; ( '-e'テストはここでは冗長ですが、' -d'は存在しなければ既にfalseを返しています)。感謝@ジャイルズ – jilles
。あなたの提案ごとに変更されました – Cfreak
うわー、あなたはそれを述べるようになったので、私はそれを自分で得たはずです。私は自分のシェルで試そうとしたことさえしませんでしたが、それを見るだけで100%正しいと思われます。私は速い応答に感謝します。ありがとうございました。 –