0
cat <> somefilepath/fileCat EOFシェルスクリプトが意図したとおりに動作しませんか?
を使用してファイルの最後に情報を追加するシェルスクリプトを作成しようとしています。
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 ------------------------#
シェルスクリプトを実行するときに不気味、ものを壊し、ファイルに見終わるEOFおよびペースト、すべてを無視しているようです。しかし、サーバーのSublimeとViでは、EOFを正しく認識しているようですが、実行中は破損します。どのようにしてサーバーがこの終了EOFを正しく認識できるようにすることができますか?私もこれを試してみた
、
cat <<'EOF'>> somefilepath/file
blah
blah
blah
EOF
ヘドラックマーカー 'EOF'の終わりはインデントしてはいけません。これは列1から始まり、末尾に空白を入れてはいけません。あなたがそれをインデントしたように見え、それが無視されている理由です。 – codeforester
EOFをインデントする場合は、 'cat << -EOF'を使うとできます。' << - 'を使うと、先頭のインデントをすべて削除します。 (字下げが合理的であれば、例えば空白ではなくハードタブなど) –
シェルスクリプトの最初の行に#/ bin/shを挿入しましたか? – pelya