次のスクリプトを解釈するには?

次のスクリプトを解釈するには?

パスワード:

#!/bin/csh

if ( A$1 == A ) then
    echo ""
    echo "LIST <name>"
    echo ""
    exit
endif

..............

いいですね。私が得たより大きなスクリプトの例は次のとおりです。スクリプトはこのコードで始まり、次のコードとは何の関係もありません。

スクリプトの使用法は次のとおりです。LIST 'name'、ここでLISTスクリプトコマンドと'name'ユーザーが導入した特定の定数は次のとおりです。

これまで私が知っているのは、次のようにスクリプトを実行すると次のようになります。

LIST 'name'

スクリプトは定数を使用して操作を実行しますが、実行しない場合は次のことを行います'name''name'

LIST

以下が表示されます。

LIST <name>

コマンドの使用方法の簡単な説明と同じです。この説明は if 内のエコーから来ています。

私が理解する必要があるのは、次の行の機能です。

if ( A$1 == A ) then

ありがとうございます!

ベストアンサー1

これは空の$1文字列ではないことを確認します。$1空の文字列の場合、if条件は次のようになります。

( A == A )

true と評価されます。これは構文エラーがないことを確認する解決策です。ただこうすれば:

if ( $1 == "" )

$1空の文字列を使用すると、この式( == "" )によって構文エラーが発生します。

少なくともbsd-csh、、、tcshでは( $1 == "" )動作します。ソースの場合は、次のものを使用する必要がありcshます。

if ( "A$1" == "A" )

変数は常に二重引用符で囲む必要があります。説明を参照してください。ここ。では、csh変数に$a改行文字が含まれていると機能しませ"$a"$a:q

おすすめ記事