리눅스 sh 명령어로 bash 실행하기

1 개요[ | ]

리눅스 sh 명령어로 bash 실행하기
  • bash 문법으로 작성된 스크립트인데 sh로 돌려 오류가 발생하는 경우가 종종 있다.
  • 이것을 적용하면 누가 실행하더라도 일관성 있게 bash로 실행되도록 강제할 수 있다.
  • 물론 bash가 없는 환경에서는 안되고, bash를 사용할 수 있는 환경에서만 가능하다.

2 문제상황[ | ]

jmnote@zetawiki:~$ cat test.sh
ARR=()
ARR+=("John Smith")
ARR+=("Jane Doe")
for VALUE in "${ARR[@]}"; do echo "[$VALUE]"; done
jmnote@zetawiki:~$ bash test.sh
[John Smith]
[Jane Doe]
jmnote@zetawiki:~$ sh test.sh
test.sh: 1: test.sh: Syntax error: "(" unexpected

3 방법[ | ]

#!/bin/bash
if [ -z "$BASH_VERSION" ]; then
    exec bash "$0" "$@"
    exit
fi

# 여기부터 실제 스크립트 내용
  • 또는 축약형
#!/bin/bash
if [ -z "$BASH_VERSION" ]; then exec bash "$0" "$@"; exit; fi

# 여기부터 실제 스크립트 내용

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}