0
我想寫一個shell腳本,使用貓<> somefilepath /文件Cat EOF shell腳本無法按預期工作?
將一些信息追加到文件的末尾。
cat <<EOF>> /etc/mysql/mysql.conf.d/mysqld.cnf
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
EOF
service mysql restart
echo ""
echo ""
# Create moodle table in mysql
echo ------------------------#
echo 'Setting up moodle mysql'
echo ------------------------#
古怪,運行shell腳本時,似乎忽略結束EOF和粘貼一切看到的入檔,打破東西。但是,在服務器的Sublime和Vi中,它似乎能夠正確識別EOF,但在運行時會中斷。我怎樣才能讓服務器正確識別這個結束的EOF?
我已經試過這爲好,沒有運氣
cat <<'EOF'>> somefilepath/file
blah
blah
blah
EOF
heredoc標記'EOF'的結尾不應該縮進 - 它應該從第1列開始,不應該有任何尾隨空格。看起來你已經縮進了,這就是它被忽略的原因。 – codeforester
請注意,如果你想縮進EOF,你可以這樣做,如果你使用'cat << - EOF'使用'<< - '會導致所有前導縮進被刪除。 (假設縮進是合理的,例如硬標籤,而不是空格) –
您是否已將#/ bin/sh放在shell腳本的第一行? – pelya