1

シェル スクリプトを学習していますが、シェル スクリプトの条件ステートメントの構文が異なることがわかりました。csh スクリプトの構文は tcsh スクリプトとは異なりますか。ある人は言う

 if [ "$PASSWORD" == "$VALID_PASSWORD" ]; then
echo "You have access!"
 else
echo "ACCESS DENIED!"
  fi

いくつかの使用

 if ($PASSWORD == $VALID_PASSWORD)
 echo "You have access!"
 else
echo "ACCESS DENIED!"
 endif

私は自分で試してみましたが、「if: Empty if」や「If: Expression Syntax」などのエラーが表示され、これらのメッセージは非常に簡単に理解できます。だから私はこれらの問題を整理する方法を尋ねることを考えました.シェル(csh、tcsh)に基づいて異なる解決策はありますか

シェルが tcsh の場合、常に tcsh スクリプトを使用する必要がありますか、それとも bash スクリプトを作成できますか。

4

2 に答える 2

4

cshステートメントtcshの同じ構文を共有します。if

if (expr) then
...
else if (expr2) then
...
else
...
endif

あなたの他の例は(おそらく)shまたはからbashです:

if list; then list; [ elif list; then list; ] ... [ else list; ] fi

あなたのリストがたまたまプログラムの呼び出しである場所(またはシェルビルトインの場合もあります)[

適切なシェルを配置する限り、必要なシェルのスクリプトを作成できます

#!/bin/sh
#!/bin/bash
#!/bin/csh
#!/bin/tcsh

ファイルの先頭にあるスクリプトの意図したシェルと一致するようにします。

于 2013-06-21T17:54:13.023 に答える
0

これはそのための実際のスクリプトです-

#!/bin/sh
# This is some secure program that uses security.

VALID_PASSWORD="secret" #this is our password.

echo "Please enter the password:"
read PASSWORD

if [ "$PASSWORD" == "$VALID_PASSWORD" ]; then
    echo "You have access!"
else
    echo "ACCESS DENIED!"
fi
于 2014-04-16T14:35:02.373 に答える