为什么我无法让此代码运行?$ echo 是什么意思?“”>>/apache/conf/httpd.conf

为什么我无法让此代码运行?$ echo 是什么意思?“”>>/apache/conf/httpd.conf

当我创建配置文件apache/conf/httpd.conf并检查它是否在系统中时,程序说该文件不存在,那么我该如何重新创建该文件以使其存在?

$ echo "">>/apache/conf/httpd.conf  
-bash: /apache/conf/httpd.conf: No such file or directory

实际上,我正在使用“CYGWIN”(Linux 的模拟器)做一个学校项目,在创建学校任务时我遇到了这个错误。这是我编写的整个程序:

$ if test -d apache
then
if ! test -d apache/bin
then 
mkdir apache/bin
fi
if ! test -d apache/conftouch
then 
mkdir apache/conf
fi
if ! test -d apache/lib
then
mkdir apache/lib
fi
if ! test -f apache/bin/httpd
then
touch apache/bin/httpd
fi
if ! test -f apache/conf/httpd.conf
then
touch apache/conf/httpd.conf
fi
mkdir apache
mkdir apache/bin
mkdir apache/conf
mkdir apache/lib
touch apache/bin/httpd
touch apache/conf/httpd.conf
fi

在我编写完程序并回去检查文件后,它说文件不存在,有人能解决这个问题来帮助我吗?

答案1

您的目录错误:apache 从未安装在 Linux 系统的根目录中。

它必须是:

echo "" >> /etc/apache2/conf/httpd.conf  

为了确保

locate httpd.conf

并将目录更改为它返回的内容。请注意,我还假设您正在使用新的 Ubuntu...您可能将 apache2 作为目录,而不是 apache(1)。定位也将证实这一点。apache 很久以前就被 apache2 取代了。

您可能还需要“sudo”,这取决于您是否拥有 http.conf。


编辑:

在我编写完程序并回去检查文件后,它说文件不存在,有人能解决这个问题来帮助我吗?

请告诉我们:为什么该编辑中的所有内容在 apache 前面都没有 /,而出现错误的命令前面却有 /?

根据编辑,我认为需要

echo "" >> apache/conf/httpd.conf  

答案2

>>将输出添加到现有文件,这就是为什么操作系统在写入之前会先尝试找到此文件。这就是问题所在,如果你检查一下

/apache/conf/httpd.conf

你会注意到文件未找到,可能你只是忘记使用httpd包管理器安装

相关内容