我正在創建一個簡單腳本,以便於在Apache服務器上設置虛擬主機。目前我似乎無法編寫配置文件,因爲它在一個變量中。我如何解決它。這是我的代碼不起作用。Bash寫入由變量命名的文件
siteConf="/etc/apache2/sites-available/$domain.conf"
echo "creating conf file"
echo "<VirtualHost *:80>" >> $siteConf
echo "ServerName *.$domain" >> $siteConf
echo "DocumentRoot $publicHtmlLoc" >> $siteConf
echo "DirectoryIndex index.php" >> $siteConf
echo "ServerAlias $database.newphp.junglecoders.dk" >> $siteConf
echo "</VirtualHost>" >> $siteConf
我正在使用bash命令運行腳本。
編輯:我得到的錯誤是這樣的
$siteConf: ambiguous redirect
域來自這裏:
echo "Write websiter url example.com, no sub dir allowed"
read -p "Name: " domain
正如評論認爲其是錯誤的路徑,我試圖呼應了變量,我可以看到它刪除了'。'因爲某些原因而留下空間,爲什麼劇本會這樣做?
EDIT2: 在腳本中使用IFS較早,分裂域名
'echo「...」>> $ varname' should be working。通常情況下,您首先要使用'echo ..> $ file'作爲單個'>'重定向,因此它會刪除之前文件中的所有內容。除非你有足夠的理由保留你的domain.conf文件,否則最好刪除它,然後再次嘗試運行你的代碼。它可能已經在工作了(如果你只是看着你的文件的「頂部」,它可能會填滿空白行(我怎麼知道的?doah!);-))。祝你好運。 – shellter
你會得到什麼結果?該代碼看起來好像它應該工作。 ''echo'「可能會更好。 ...;回聲「 VirtualHost>」; }> $ siteConf'(或'>> $ siteConf')。你從'bash -x your-script.sh'中得到了什麼?在域環境中設置了「域」嗎?如果不是,則編輯文件'/ etc/apache2/sites-available/.conf'。 –
當名稱變量不存在或爲空時,您會得到'模糊重定向'。這表明你的腳本的第一行並不是你所得到的準確表示,但很難猜測你的錯誤。拼寫錯誤的名稱或不需要的空間可能是最有可能的,但它可能是別的。 –