🦔

複数行文字列を持つファイルをシェルスクリプト内で作成

2020/10/26に公開

シェルスクリプトを利用し、一括実行を行う中で、

複数行の文字列を中身に持つファイルを作成する手順となります。

ヒアドキュメントを利用すると、スクリプト等ファイルを作り、実行する等が可能でした。

ヒアドキュメント活用

テストファイル準備

~/work # ls -l
total 0
-rw-r--r-- 1 root root 121 Oct 26 13:19 here_document_test.sh
~/work # cat here_document_test.sh
echo test0
###
cat <<EOF > test.sh
echo test1
echo test2
echo test3
EOF
###
ls -al test.sh
###
cat test.sh
###
. test.sh

テスト実施

~/work # . here_document_test.sh
test0
-rw-r--r-- 1 root root 33 Oct 26 13:20 test.sh
echo test1
echo test2
echo test3
test1
test2
test3
~/work # ls -l
total 0
-rw-r--r-- 1 root root 121 Oct 26 13:19 here_document_test.sh
-rw-r--r-- 1 root root  33 Oct 26 13:20 test.sh
~/work # cat test.sh
echo test1
echo test2
echo test3
  • 【注意】権限の無いユーザでは、ファイルを実行・作成できない
    • /root/workはroot:rootのため、ここにroot権限以外のユーザがファイルやディレクトリを作成不可
    • here_document_test.sh等スクリプトも実行するユーザの実行権限を付ける必要がある
      • # chmod +x [スクリプトファイル]

Discussion