bash
-
Mac OS X BASH의 프롬프트에 컬러 적용하기Programmer/Computer Skills 2019. 4. 26. 11:59
맥오에스 카타리나 이전에 해당하는 이야기이다. 카타리나 이후의 기본 쉘이 ZSH로 바뀌었다. BASH를 계속 선호한다면 이 글을 참고하도록 한다. 기본은 무색의 프롬프트이다. (사실은 기본이 아니다. 버그였다.) 이것을 컬러가 들어간 프롬프트로 바꾸어보자. ~/.bashrc 내용의 일부이다. 자세히 뜯어보면, 터미널이 컬러를 지원하면 컬러 프롬프트가 떠야 한다. 그런데, 예상되로 동작하지 않는다. # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) PS1='[\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]]\$ ' ;; *) ..
-
Bash에서 사용자 자동 완성 기능 개선하기Programmer/Computer Skills 2019. 4. 4. 18:35
Ubuntu Linux의 bash의 자동 완성은 /etc/bash_completion.d/ 아래 위치한다. rustup의 공식 저장소에서는 자동 완성 기능을 활성화 하는 방법을 아래와 같이 안내하고 있다. rustup completions bash > /etc/bash_completion.d/rustup.bash-completion 위 방법은 일반적인 Rust 설치 권한 이상을 요구하는 문제가 있다. Rust를 대개 개인의 홈디렉토리에 설치한다. 즉, 관리자 권한이 없어도 설치하고 사용할 수 있다. 반면, /etc/bash_completion.d/ 디렉토리는 관리자 권한을 요구한다. 간단한 해결 방법으로는, ~/.bash_completion 파일에 추가하는 방법이 있다. 개인 명령어의 모든 자동 완성을 ..
-
쉘스크립트에서 안전하게 문자열(string)을 비교하는 방법Programmer/Computer Skills 2016. 9. 30. 16:50
두 문자열을 안전하게 비교할 때는 if [ x$A == x$B ]; then echo $1 fi 또는 if [ "$A" == "$B" ]; then echo $1 fi 를 사용한다. 빈 문자열인지 안전하게 검사하는 방법은 if [ x$A == x ]; then echo $1 fi 또는 if [ "$A" == "" ]; then echo $1 fi 내지는 if [ -z "$A" ]; then echo $1 fi 이 있다. x와 같은 문자를 추가하거나 인용문자(")로 둘러싸지 않으면 빈문자열이거나 옵션 형태의 문자열이 들어오면 오류가 발생할 수 있다. 아래와 같이 STRING을 따옴표로 둘러싸지 않으면 [ -z STRING ] STRING이 "-n", "-p" 등을 포함한 옵션 형태의 문자열이 들어오면 문제..