shスクリプトを書いてみました(添削を期待)
諸事情により、httpd.conf内の「AddDefaultCharset」の行をコメントアウトするshスクリプトを書きました。
shスクリプトは馴染みがなくて分からないながらも色々参考にしつつ書きました。
晒し上げつつ、添削を期待する次第です。
#!/bin/sh
CONF_FILE=/etc/httpd/conf/httpd.conf
TMP_FILE=/tmp/httpd.conf
touch ${TMP_FILE}
#ファイル内の'\'は'\\'に置換してから
sed 's/\\/\\\\/g' ${CONF_FILE} | while read line
do
case ${line} in
#ここでの正規表現の書き方がよくわからん
AddDefaultCharset*)
echo -e "#${line}" >> ${TMP_FILE}
;;
*)
echo -e "${line}" >> ${TMP_FILE}
;;
esac
done
mv ${CONF_FILE} ${CONF_FILE}.org
mv -f ${TMP_FILE} ${CONF_FILE}




2007年9月18日(火曜日) at 15時49分
シェルスクリプトは僕もよくわからんですが、置換なら sed だけでもできます。
#!/bin/shCONF_FILE=/etc/httpd/conf/httpd.conf
TMP_FILE=/tmp/httpd.conf
sed -e "s/^AddDefaultCharset/\#AddDefaultCharset/" ${CONF_FILE} > ${TMP_FILE}
mv ${CONF_FILE} ${CONF_FILE}.orig
mv ${TMP_FILE} ${CONF_FILE}
こんな感じとか。ただのコマンドの羅列になりますが。
2007年9月18日(火曜日) at 17時47分
ぐはっほんとだw
頑張ってループつかってたりしてアホすぎる。
ご指摘ありがとうございます!
2007年9月18日(火曜日) at 19時45分
でもシェルスクリプトでループとかバリバリ書ける人になりたいです。
ターミナルにインラインですらすらっと書きたい。
2008年2月21日(木曜日) at 9時29分
http://www.value-press.com/pressrelease.php?article_id=22029&php_value_press_session=7113c1b474a3b5a6cfa5f9e97ecf3139
から来た俺がコメントしますよ。
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.orig ; echo
“%s/^AddDefaultCharset/\#AddDefaultCharset/g\nw\n” | ed - /etc/httpd/conf/httpd.conf
じゃないですかね。
参考:
http://at-aka.blogspot.com/2006/12/ed-sed.html
edってなにげに便利。
2008年2月21日(木曜日) at 15時43分
ほぉぉぉこれはイカス。
ワンライナーイカス。
ありがとうございます!!