我正在尝试编写一个使用cat<>的shell脚本somefilepath / file
将一些信息附加到文件末尾。
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
答案 0 :(得分:0)
当将一些脚本从Ubuntu 14.04移动到16.04时,此错误开始出现。也许bash的行为发生了一些变化。
将脚本更改为使用#!/bin/sh
而不是#!/bin/bash
,&#34; cat <<EOF>file
&#34;再次工作。