Yalnızca komut dosyası kurşun geçirmez yapmak için henüz mevcut değilse bir dosyayı yerinde ekleyerek düzenlemek istiyorum.
Normalde şöyle bir şey yaparım:
cat >> ~/.bashrc <<EOF
export PATH=~/.composer/vendor/bin:\$PATH
EOF
Bunu ansible ( line
+ insertafter=EOF
+ regexp
) ile yapmak da mümkündür , ancak bu başka bir hikaye.
Vi / ex gibi bir şey yapabilirdi:
ex +'$s@$@\rexport PATH=\~/.composer/vendor/bin:$PATH@' -cwq ~/.bashrc
ama sonra aynı hattı tekrarlamadan hattın zaten orada olup olmadığını (ve dolayısıyla hiçbir şey yapmadığını) nasıl kontrol edebilirim?
Ya da Ex düzenleyicide yapmanın daha kolay bir yolu var mı?
ex ~/.bashrc -c "if search('export PATH=\~\/.composer\/vendor\/bin:\$PATH')>0 | norm quit | endif | norm Aexport PATH=~/.composer/vendor/bin:$PATH"
export
Bir komut olduğuna dikkat edin , bu nedenle satırın geri kalanı bir ödev DEĞİL bir kabuk kelimesidir. Bu nedenle (kullanılmayan export
) değişken bir atamadan farklı olarak , çift tırnaklara ihtiyacınız vardır , yoksa boşlukta bozulur . Ayrıca bkz . PATH'ye doğru bir yol nasıl eklenir .
grep -Fq 'export PATH=~/.composer/vendor/bin:$PATH' ~/.bashrc || ex ...
(veyacat
bu konuda)?