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 또는 다른 도구를 사용하여 한 줄로 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
.