0

これを bash から実行しようとすると問題が発生します:

[root@bryanserver ~]# $SPACER="#-------#" APACHE_ENABLED=`ls -1 "$HTTPD_HOSTS-EN" | grep ".conf" | sed s/.conf//` APACHE_COUNT=`echo -e "$APACHE_ENABLED" | wc -1` if [ -n "$APACHE_ENABLED" ]; then echo $SPACER echo "Apache enabled Sites: $APACHE_COUNT" echo "$APACHE_ENABLED" else echo $SPACER echo "There are no detectable nor delectable WebSites In Sight Blackbeard" fi
bash: syntax error near unexpected token `then

コード自体に問題がありますか、それともファイルに入れてファイルを入手するのではなく、シェルから使用しようとすることに問題がありますか?

Bash のコマンド ラインでこれを入力します。

APACHE_ENABLED=`"$HTTPD_HOSTS_EN" | grep ".conf" | sed s/.conf//`
APACHE_COUNT=`echo -e "$APACHE_ENABLED" | wc -l`
if [ -n "$APACHE_ENABLED" ]; then
 echo $SPACER
 echo "Apache Enabled Sites: $APACHE_COUNT"
 echo "$APACHE_ENABLED" 
else
 echo $SPACER
 echo "There are no detected Apache Enabled Sites"
fi

produces this output:
APACHE_ENABLED=`"$HTTPD_HOSTS_EN" | grep ".conf" | sed s/.conf//`
APACHE_COUNT=`echo -e "$APACHE_ENABLED" | wc -l`
-bash: : command not found
[root@bryanserver ~]# APACHE_COUNT=`echo -e "$APACHE_ENABLED" | wc -l`
[root@bryanserver ~]# if [ -n "$APACHE_ENABLED" ]; then
>  echo $SPACER
>  echo "Apache Enabled Sites: $APACHE_COUNT"
>  echo "$APACHE_ENABLED"
> else
>  echo $SPACER
>  echo "There are no detected Apache Enabled Sites"
> fi  #

Enterキーを押して出来上がり!これが結果です。検出された Apache Enabled Sites [root@bryanserver ~]# はなく、Bash はさらに作業を行う準備ができています。

はい、Keith が指摘したように、私はellを 1 と間違えました。まだいくつかの癖がありますが、実行してレポートを発行します。それは進歩です。

ここでは、Charles Smith の資料を使用しています。彼は GitHub でいくつかのスクリプトを共有しました。github.com/twohlix/HostingScripts/blob/master/listwww.

しかし、私はメモ帳を使用していました。いくつかの編集を行った後、テキストをクリップボードに入れて Bash にアンロードすると、EOF の問題が発生したと考えられました。このSOの質問は私にアイデアを与えました .ifステートメントでEOFをbashする NotePad2でView / Show Line Endings を使用し、コードをコピーしてBashに貼り付けたところ、うまくいきました。

4

1 に答える 1

2

私が見るもの:

  • の宣言に$SPACERはドル記号を使用しないでください
  • ;宣言文の間にセミコロンを追加する

これは、複数行のステートメントであなたが意味することだと思います:

SPACER="#-------#"
APACHE_ENABLED=`ls -1 "$HTTPD_HOSTS-EN" | grep ".conf" | sed s/.conf//`
APACHE_COUNT=`echo -e "$APACHE_ENABLED" | wc -1`
if [ -n "$APACHE_ENABLED" ]; then 
    echo $SPACER;
    echo "Apache enabled Sites: $APACHE_COUNT";
    echo "$APACHE_ENABLED";
else 
    echo $SPACER;
    echo "There are no detectable nor delectable WebSites In Sight Blackbeard";
fi

1 行で、セミコロンまたは 2 つのアンパサンドを追加&&してステートメントを区切ることを忘れないでください。

SPACER="#-------#"; APACHE_ENABLED=`ls -1 "$HTTPD_HOSTS-EN" | grep ".conf" | sed s/.conf//`; APACHE_COUNT=`echo -e "$APACHE_ENABLED" | wc -1`; if [ -n "$APACHE_ENABLED" ]; then echo $SPACER; echo "Apache enabled Sites: $APACHE_COUNT"; echo "$APACHE_ENABLED"; else echo $SPACER; echo "There are no detectable nor delectable WebSites In Sight Blackbeard"; fi
于 2012-08-10T20:59:54.260 に答える