쉘 스크립트에서 HISTSIZE 업데이트

쉘 스크립트에서 HISTSIZE 업데이트

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.

관련 정보