尝试从 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 #
然后点击进入,瞧!结果如下:没有检测到启用 Apache 的站点 [root@bryanserver ~]# 并且 Bash 已准备好进行更多工作。
所以,是的,正如基思指出的那样,我把ell误认为1,还有一些怪癖,但它执行并发出报告。这就是进步。
我在这里使用 Charles Smith 的一些材料;他在 GitHub 上分享了一些脚本;github.com/twohlix/HostingScripts/blob/master/listwww。
但是我使用的是记事本,在编辑了一些东西之后,当我将文本放在剪贴板上并在 Bash 中卸载它时,我相信发生的事情是我遇到了 EOF 问题。这个 SO question 给了我一个想法: bash EOF in if statement 我在 NotePad2 中使用了View / Show Line Endings,并复制了我的代码,然后将其粘贴到 Bash 中,这很有效。