前提
あるフォルダにREADME.mdファイルとadd.shファイルが存在しています。
実現したいこと
sh add.shを都度実行したときに、README.mdの4行目に新しい行を追加したいです。
発生している問題・エラーメッセージ
sed -i '4i 文字列' README.md
をzshのコマンドラインから実施した場合は、期待通りREADME.mdの4行目に行が追加されます。ただ、zshでsh add.shを実行すると、echoで内容は正しく表示されているものの、実際のREADME.mdは更新されていません。
該当のソースコード
add.sh
1#!/bin/bash 2command="sed -i '4i 文字列' README.md" 3echo $command 4eval $command
エラーメッセージ
sed: 1: "README.md": invalid command code R
試したこと
chmod 777 add.shとしてshに権限を与えてみても結果は同じでした。
> README.md
とかしないと更新されないと思います。
コメントありがとうございます。
command="sed -i '4i | []() | [Link] |' > README.md"
と変更してみましたが、sh add.shを実施してもファイルが更新されませんでした
eval command
は、
eval $command
ではないでしょうか。
確かにおっしゃる通りですね、失礼しました。
eval $commandに変更したのですが、
sed: 1: "README.md": invalid command code R
と出てしまいました。
command="sed -i '4i 文字列' README.md"
としていますよね?
はい、そのように設定しています。(質問を編集しました)
手元の環境は GNU sed 4.8/zsh 5.8.1 ですが、4行目に文字列が挿入されます。