grep+sed を使用して、以下をHISTSIZE
使用して bash 構成ファイルの変数を更新します。
if grep -q "^HISTSIZE=" /etc/profile ; then
sed -n -i 's/HISTSIZE=.*/HISTSIZE=10000/g' /etc/profile
else
echo 'HISTSIZE=10000' >> /etc/profile
fi
sed、awk、または他のツールを使用して、1行でbashの環境変数を更新できますか?
答え1
使用awk
:
awk -F= -v k=HISTSIZE -v v=10000 '
$1==k{$2=v;s=1};1;
END{OFS="=";if(!s)print k,v}
' /etc/profile > /etc/profile.tmp && mv /etc/profile.tmp /etc/profile
GNU awkを使用して編集できます。所定の位置に:
awk -i inplace -F= -v k=HISTSIZE -v v=10000 '
$1==k{$2=v;s=1};1;
END{OFS="=";if(!s)print k,v}
' /etc/profile
現在のユーザーの設定のみを変更する必要がある場合に使用でき~/.profile
ます/etc/profile
。