현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리
소개
배포용 스크립트라든지 쓰고 있습니다.
프로그램은 PHP라든지 Node.js로 쓰기 때문에, Bash로 쓰는 것은 명령을 정리한 것이 됩니다.
인수를 건네주거나 환경 변수를 정의시키면서, 쉘에 대한 조작이 많습니다.
「Bash 쓰는 방법」이라든지 구그하면 Bash 스크립트 전반의 일이 나오므로 조금 취지가 다르고, CI라든지 인프라용으로 쓸 때 붐비고 있는 것의 정리입니다.
잘 쓰는 패턴
#!/usr/bin/env bash
set -xe # -xで実行コマンドを表示、-eでエラーがあったときに終了
cd -- "$(dirname "$BASH_SOURCE")" # ファイルがある場所に移動
Shebang
첫 줄에 쓰는 녀석. 셰반.
test.sh#!/usr/bin/env bash
htps // 엔.ぃきぺぢ아. 오 rg / uuki / shiban g_ (우니 x)
오류 등 출력
오류 전용.
test.shset -e
커맨드도 출력한다.
test.shset -xe
set -x 한 것을 무효화한다
set -x
하고 있으면 여러가지 디버그 메세지가 흐르므로, 무효화하고 싶을 때는 +
옵션을 사용한다.-x
에 대해서는 +x
.
test.shset -x # ここからデバッグ用の実行中コマンドが出力されます
echo 'hoge'
set +x # ここからデバッグ用の実行中コマンドの出力が無くなります。
With set +e. Yeah, it's backward that you enable shell options with set - and disable them with set +. Historical raisins, donchanow.
참고
착색하다
\e[34m
등의 이스케이프 순서로 색이 붙습니다.
printf '🎉\e[34m Success! \e[m🎉\n'
출력 예
현재 디렉토리를 스크립트 파일이 있는 위치로 이동
test.shpwd -P # 確認用 /home/username
cd -- "$(dirname "$BASH_SOURCE")" # ここ
pwd -P # 確認用 /home/username/bin/test
test를 사용한 판정
본래 test
는 수치 판정에 사용되고 있었지만, 쉘 스크립트로서의 test
는 캐릭터 라인 조작, 파일 조작을 주로 사용하고 있기 때문에 거기에 포커스.
옵션
설명
선택적 어원
-z
변수가 비어 있음
is Zero
-n
변수에 뭔가 있다
is Number
-d
디렉토리인지 여부
is Directory
-f
파일인지 여부
is File
-e
존재하는가
is Existing
-r
읽을 수 있습니까?
is Readable
-w
쓸 수 있을까
is Writable
-x
할 수 있는가?
is e Xecutable
구그할 때는 "bash test file exsist"와 같이 "bash test"라고 쓰면 좋다.
변수가 존재하는가?
기본적으로는 test
의 -z
로 조사하는 것 같지만, -z의 본래의 의미는 제로인가 어떤가. 그래서 변수를 더블 쿼트로 둘러싸면 좋다.
test.shHOGE='hoge desu yo'
FUGA=''
if [ -z "$HOGE" ]; then
echo "HOGE is empty" # 🙅♂️ここに来ません
else
echo "HOGE is ${HOGE}" # 🙆♂️こちらになります
fi
if [ -z "$FUGA" ]; then
echo "FUGA is empty" # 🙆♂️こちらになります
else
echo "FUGA is ${FUGA}" # 🙅♂️ここに来ません
fi
결과$ bash test.bash
HOGE is hoge desu yo
FUGA is empty
htp : // 우니 x. s c x x 짱. 코 m / 쿠에 s 치온 s / 146942 / HO W-KAN-I-ST-F-A-A-A B-E-S-MPTY-R 세
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 18096670 / うぁ t 도에 s ~ 메안 엔 - 바 sh
디렉토리가 존재합니까?
if [[ -d "path/to/target" ]]; then
echo 'Directory exists'
exit 1
fi
변수 전개
기본적으로 $
및 변수 이름.
예 :) $HOGE
캐릭터 라인이 연속하는 경우에 확실하게 전개시키려면 $
의 뒤에 중괄호로 변수명을 쓴다.
예 1 :)
예 2 :) $HOGEFUGA
인수 처리(Arguments)
1번째의 인수를 ${HOGE}FUGA
에 대입. 지정되어 있지 않으면 $PROFILE
를 대입.
test.shPROFILE=${1:-default}
echo $PROFILE
$ ./test.sh profile_desu
profile_desu
변수가 정의되면 ○○
삼항 연산자적인 것입니다.
test.shHOGE=hoge
FUGA=${HOGE-fuga} # $HOGEは定義されているのでhogeが参照される
echo $FUGA # hoge
PIYO=${HOGE2-piyo} # $HOGE2は定義されていないのでpiyoが参照される
echo $PIYO; # piyo
탭 문자 등을 내고 싶습니다.
default
를 사용하여 쉘에 배포합니다.
$ $'\t' # タブ文字が出る
$ echo 'mae'$'\t''usiro' # mae usiro
맨 위에 탭 문자를 추가합니다.
$ echo 'hoge' | sed -e 's/^/'$'\t''/g'
curl 다운로드
Bash 스크립트는 아니지만 스크립트 내에서 사용하는 명령.
curl -LOJ https://example.com
옵션
설명
-L
리디렉션을 따르십시오. (리디렉션이 맞는 경우 추적하여 다음 URL에 자동으로 액세스)
-O
파일을 그대로 저장한다.
-J
서버로부터 지정된 파일명을 보존시의 파일명으로서 사용한다. 이 옵션이 없으면 URL의 말미를 파일명으로서 사용하려고 하기 위해(때문에), 토큰이나 쿼리 파라미터 첨부의 URL등의 다운로드시에 고생합니다.
ShellCheck
쉘 구문에 오류가 있는지 확인할 수 있습니다.
수중에서도 할 수 있고, 온라인에서도 가능합니다.
Reference
이 문제에 관하여(현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yousan/items/813bea9bdfe2e1593136
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/usr/bin/env bash
set -xe # -xで実行コマンドを表示、-eでエラーがあったときに終了
cd -- "$(dirname "$BASH_SOURCE")" # ファイルがある場所に移動
Shebang
첫 줄에 쓰는 녀석. 셰반.
test.sh#!/usr/bin/env bash
htps // 엔.ぃきぺぢ아. 오 rg / uuki / shiban g_ (우니 x)
오류 등 출력
오류 전용.
test.shset -e
커맨드도 출력한다.
test.shset -xe
set -x 한 것을 무효화한다
set -x
하고 있으면 여러가지 디버그 메세지가 흐르므로, 무효화하고 싶을 때는 +
옵션을 사용한다.-x
에 대해서는 +x
.
test.shset -x # ここからデバッグ用の実行中コマンドが出力されます
echo 'hoge'
set +x # ここからデバッグ用の実行中コマンドの出力が無くなります。
With set +e. Yeah, it's backward that you enable shell options with set - and disable them with set +. Historical raisins, donchanow.
참고
착색하다
\e[34m
등의 이스케이프 순서로 색이 붙습니다.
printf '🎉\e[34m Success! \e[m🎉\n'
출력 예
현재 디렉토리를 스크립트 파일이 있는 위치로 이동
test.shpwd -P # 確認用 /home/username
cd -- "$(dirname "$BASH_SOURCE")" # ここ
pwd -P # 確認用 /home/username/bin/test
test를 사용한 판정
본래 test
는 수치 판정에 사용되고 있었지만, 쉘 스크립트로서의 test
는 캐릭터 라인 조작, 파일 조작을 주로 사용하고 있기 때문에 거기에 포커스.
옵션
설명
선택적 어원
-z
변수가 비어 있음
is Zero
-n
변수에 뭔가 있다
is Number
-d
디렉토리인지 여부
is Directory
-f
파일인지 여부
is File
-e
존재하는가
is Existing
-r
읽을 수 있습니까?
is Readable
-w
쓸 수 있을까
is Writable
-x
할 수 있는가?
is e Xecutable
구그할 때는 "bash test file exsist"와 같이 "bash test"라고 쓰면 좋다.
변수가 존재하는가?
기본적으로는 test
의 -z
로 조사하는 것 같지만, -z의 본래의 의미는 제로인가 어떤가. 그래서 변수를 더블 쿼트로 둘러싸면 좋다.
test.shHOGE='hoge desu yo'
FUGA=''
if [ -z "$HOGE" ]; then
echo "HOGE is empty" # 🙅♂️ここに来ません
else
echo "HOGE is ${HOGE}" # 🙆♂️こちらになります
fi
if [ -z "$FUGA" ]; then
echo "FUGA is empty" # 🙆♂️こちらになります
else
echo "FUGA is ${FUGA}" # 🙅♂️ここに来ません
fi
결과$ bash test.bash
HOGE is hoge desu yo
FUGA is empty
htp : // 우니 x. s c x x 짱. 코 m / 쿠에 s 치온 s / 146942 / HO W-KAN-I-ST-F-A-A-A B-E-S-MPTY-R 세
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 18096670 / うぁ t 도에 s ~ 메안 엔 - 바 sh
디렉토리가 존재합니까?
if [[ -d "path/to/target" ]]; then
echo 'Directory exists'
exit 1
fi
변수 전개
기본적으로 $
및 변수 이름.
예 :) $HOGE
캐릭터 라인이 연속하는 경우에 확실하게 전개시키려면 $
의 뒤에 중괄호로 변수명을 쓴다.
예 1 :)
예 2 :) $HOGEFUGA
인수 처리(Arguments)
1번째의 인수를 ${HOGE}FUGA
에 대입. 지정되어 있지 않으면 $PROFILE
를 대입.
test.shPROFILE=${1:-default}
echo $PROFILE
$ ./test.sh profile_desu
profile_desu
변수가 정의되면 ○○
삼항 연산자적인 것입니다.
test.shHOGE=hoge
FUGA=${HOGE-fuga} # $HOGEは定義されているのでhogeが参照される
echo $FUGA # hoge
PIYO=${HOGE2-piyo} # $HOGE2は定義されていないのでpiyoが参照される
echo $PIYO; # piyo
탭 문자 등을 내고 싶습니다.
default
를 사용하여 쉘에 배포합니다.
$ $'\t' # タブ文字が出る
$ echo 'mae'$'\t''usiro' # mae usiro
맨 위에 탭 문자를 추가합니다.
$ echo 'hoge' | sed -e 's/^/'$'\t''/g'
curl 다운로드
Bash 스크립트는 아니지만 스크립트 내에서 사용하는 명령.
curl -LOJ https://example.com
옵션
설명
-L
리디렉션을 따르십시오. (리디렉션이 맞는 경우 추적하여 다음 URL에 자동으로 액세스)
-O
파일을 그대로 저장한다.
-J
서버로부터 지정된 파일명을 보존시의 파일명으로서 사용한다. 이 옵션이 없으면 URL의 말미를 파일명으로서 사용하려고 하기 위해(때문에), 토큰이나 쿼리 파라미터 첨부의 URL등의 다운로드시에 고생합니다.
ShellCheck
쉘 구문에 오류가 있는지 확인할 수 있습니다.
수중에서도 할 수 있고, 온라인에서도 가능합니다.
Reference
이 문제에 관하여(현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yousan/items/813bea9bdfe2e1593136
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/usr/bin/env bash
오류 전용.
test.sh
set -e
커맨드도 출력한다.
test.sh
set -xe
set -x 한 것을 무효화한다
set -x
하고 있으면 여러가지 디버그 메세지가 흐르므로, 무효화하고 싶을 때는 +
옵션을 사용한다.-x
에 대해서는 +x
.
test.shset -x # ここからデバッグ用の実行中コマンドが出力されます
echo 'hoge'
set +x # ここからデバッグ用の実行中コマンドの出力が無くなります。
With set +e. Yeah, it's backward that you enable shell options with set - and disable them with set +. Historical raisins, donchanow.
참고
착색하다
\e[34m
등의 이스케이프 순서로 색이 붙습니다.
printf '🎉\e[34m Success! \e[m🎉\n'
출력 예
현재 디렉토리를 스크립트 파일이 있는 위치로 이동
test.shpwd -P # 確認用 /home/username
cd -- "$(dirname "$BASH_SOURCE")" # ここ
pwd -P # 確認用 /home/username/bin/test
test를 사용한 판정
본래 test
는 수치 판정에 사용되고 있었지만, 쉘 스크립트로서의 test
는 캐릭터 라인 조작, 파일 조작을 주로 사용하고 있기 때문에 거기에 포커스.
옵션
설명
선택적 어원
-z
변수가 비어 있음
is Zero
-n
변수에 뭔가 있다
is Number
-d
디렉토리인지 여부
is Directory
-f
파일인지 여부
is File
-e
존재하는가
is Existing
-r
읽을 수 있습니까?
is Readable
-w
쓸 수 있을까
is Writable
-x
할 수 있는가?
is e Xecutable
구그할 때는 "bash test file exsist"와 같이 "bash test"라고 쓰면 좋다.
변수가 존재하는가?
기본적으로는 test
의 -z
로 조사하는 것 같지만, -z의 본래의 의미는 제로인가 어떤가. 그래서 변수를 더블 쿼트로 둘러싸면 좋다.
test.shHOGE='hoge desu yo'
FUGA=''
if [ -z "$HOGE" ]; then
echo "HOGE is empty" # 🙅♂️ここに来ません
else
echo "HOGE is ${HOGE}" # 🙆♂️こちらになります
fi
if [ -z "$FUGA" ]; then
echo "FUGA is empty" # 🙆♂️こちらになります
else
echo "FUGA is ${FUGA}" # 🙅♂️ここに来ません
fi
결과$ bash test.bash
HOGE is hoge desu yo
FUGA is empty
htp : // 우니 x. s c x x 짱. 코 m / 쿠에 s 치온 s / 146942 / HO W-KAN-I-ST-F-A-A-A B-E-S-MPTY-R 세
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 18096670 / うぁ t 도에 s ~ 메안 엔 - 바 sh
디렉토리가 존재합니까?
if [[ -d "path/to/target" ]]; then
echo 'Directory exists'
exit 1
fi
변수 전개
기본적으로 $
및 변수 이름.
예 :) $HOGE
캐릭터 라인이 연속하는 경우에 확실하게 전개시키려면 $
의 뒤에 중괄호로 변수명을 쓴다.
예 1 :)
예 2 :) $HOGEFUGA
인수 처리(Arguments)
1번째의 인수를 ${HOGE}FUGA
에 대입. 지정되어 있지 않으면 $PROFILE
를 대입.
test.shPROFILE=${1:-default}
echo $PROFILE
$ ./test.sh profile_desu
profile_desu
변수가 정의되면 ○○
삼항 연산자적인 것입니다.
test.shHOGE=hoge
FUGA=${HOGE-fuga} # $HOGEは定義されているのでhogeが参照される
echo $FUGA # hoge
PIYO=${HOGE2-piyo} # $HOGE2は定義されていないのでpiyoが参照される
echo $PIYO; # piyo
탭 문자 등을 내고 싶습니다.
default
를 사용하여 쉘에 배포합니다.
$ $'\t' # タブ文字が出る
$ echo 'mae'$'\t''usiro' # mae usiro
맨 위에 탭 문자를 추가합니다.
$ echo 'hoge' | sed -e 's/^/'$'\t''/g'
curl 다운로드
Bash 스크립트는 아니지만 스크립트 내에서 사용하는 명령.
curl -LOJ https://example.com
옵션
설명
-L
리디렉션을 따르십시오. (리디렉션이 맞는 경우 추적하여 다음 URL에 자동으로 액세스)
-O
파일을 그대로 저장한다.
-J
서버로부터 지정된 파일명을 보존시의 파일명으로서 사용한다. 이 옵션이 없으면 URL의 말미를 파일명으로서 사용하려고 하기 위해(때문에), 토큰이나 쿼리 파라미터 첨부의 URL등의 다운로드시에 고생합니다.
ShellCheck
쉘 구문에 오류가 있는지 확인할 수 있습니다.
수중에서도 할 수 있고, 온라인에서도 가능합니다.
Reference
이 문제에 관하여(현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yousan/items/813bea9bdfe2e1593136
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
set -x # ここからデバッグ用の実行中コマンドが出力されます
echo 'hoge'
set +x # ここからデバッグ用の実行中コマンドの出力が無くなります。
\e[34m
등의 이스케이프 순서로 색이 붙습니다.printf '🎉\e[34m Success! \e[m🎉\n'
출력 예
현재 디렉토리를 스크립트 파일이 있는 위치로 이동
test.shpwd -P # 確認用 /home/username
cd -- "$(dirname "$BASH_SOURCE")" # ここ
pwd -P # 確認用 /home/username/bin/test
test를 사용한 판정
본래 test
는 수치 판정에 사용되고 있었지만, 쉘 스크립트로서의 test
는 캐릭터 라인 조작, 파일 조작을 주로 사용하고 있기 때문에 거기에 포커스.
옵션
설명
선택적 어원
-z
변수가 비어 있음
is Zero
-n
변수에 뭔가 있다
is Number
-d
디렉토리인지 여부
is Directory
-f
파일인지 여부
is File
-e
존재하는가
is Existing
-r
읽을 수 있습니까?
is Readable
-w
쓸 수 있을까
is Writable
-x
할 수 있는가?
is e Xecutable
구그할 때는 "bash test file exsist"와 같이 "bash test"라고 쓰면 좋다.
변수가 존재하는가?
기본적으로는 test
의 -z
로 조사하는 것 같지만, -z의 본래의 의미는 제로인가 어떤가. 그래서 변수를 더블 쿼트로 둘러싸면 좋다.
test.shHOGE='hoge desu yo'
FUGA=''
if [ -z "$HOGE" ]; then
echo "HOGE is empty" # 🙅♂️ここに来ません
else
echo "HOGE is ${HOGE}" # 🙆♂️こちらになります
fi
if [ -z "$FUGA" ]; then
echo "FUGA is empty" # 🙆♂️こちらになります
else
echo "FUGA is ${FUGA}" # 🙅♂️ここに来ません
fi
결과$ bash test.bash
HOGE is hoge desu yo
FUGA is empty
htp : // 우니 x. s c x x 짱. 코 m / 쿠에 s 치온 s / 146942 / HO W-KAN-I-ST-F-A-A-A B-E-S-MPTY-R 세
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 18096670 / うぁ t 도에 s ~ 메안 엔 - 바 sh
디렉토리가 존재합니까?
if [[ -d "path/to/target" ]]; then
echo 'Directory exists'
exit 1
fi
변수 전개
기본적으로 $
및 변수 이름.
예 :) $HOGE
캐릭터 라인이 연속하는 경우에 확실하게 전개시키려면 $
의 뒤에 중괄호로 변수명을 쓴다.
예 1 :)
예 2 :) $HOGEFUGA
인수 처리(Arguments)
1번째의 인수를 ${HOGE}FUGA
에 대입. 지정되어 있지 않으면 $PROFILE
를 대입.
test.shPROFILE=${1:-default}
echo $PROFILE
$ ./test.sh profile_desu
profile_desu
변수가 정의되면 ○○
삼항 연산자적인 것입니다.
test.shHOGE=hoge
FUGA=${HOGE-fuga} # $HOGEは定義されているのでhogeが参照される
echo $FUGA # hoge
PIYO=${HOGE2-piyo} # $HOGE2は定義されていないのでpiyoが参照される
echo $PIYO; # piyo
탭 문자 등을 내고 싶습니다.
default
를 사용하여 쉘에 배포합니다.
$ $'\t' # タブ文字が出る
$ echo 'mae'$'\t''usiro' # mae usiro
맨 위에 탭 문자를 추가합니다.
$ echo 'hoge' | sed -e 's/^/'$'\t''/g'
curl 다운로드
Bash 스크립트는 아니지만 스크립트 내에서 사용하는 명령.
curl -LOJ https://example.com
옵션
설명
-L
리디렉션을 따르십시오. (리디렉션이 맞는 경우 추적하여 다음 URL에 자동으로 액세스)
-O
파일을 그대로 저장한다.
-J
서버로부터 지정된 파일명을 보존시의 파일명으로서 사용한다. 이 옵션이 없으면 URL의 말미를 파일명으로서 사용하려고 하기 위해(때문에), 토큰이나 쿼리 파라미터 첨부의 URL등의 다운로드시에 고생합니다.
ShellCheck
쉘 구문에 오류가 있는지 확인할 수 있습니다.
수중에서도 할 수 있고, 온라인에서도 가능합니다.
Reference
이 문제에 관하여(현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yousan/items/813bea9bdfe2e1593136
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pwd -P # 確認用 /home/username
cd -- "$(dirname "$BASH_SOURCE")" # ここ
pwd -P # 確認用 /home/username/bin/test
본래
test
는 수치 판정에 사용되고 있었지만, 쉘 스크립트로서의 test
는 캐릭터 라인 조작, 파일 조작을 주로 사용하고 있기 때문에 거기에 포커스.옵션
설명
선택적 어원
-z
변수가 비어 있음
is Zero
-n
변수에 뭔가 있다
is Number
-d
디렉토리인지 여부
is Directory
-f
파일인지 여부
is File
-e
존재하는가
is Existing
-r
읽을 수 있습니까?
is Readable
-w
쓸 수 있을까
is Writable
-x
할 수 있는가?
is e Xecutable
구그할 때는 "bash test file exsist"와 같이 "bash test"라고 쓰면 좋다.
변수가 존재하는가?
기본적으로는
test
의 -z
로 조사하는 것 같지만, -z의 본래의 의미는 제로인가 어떤가. 그래서 변수를 더블 쿼트로 둘러싸면 좋다.test.sh
HOGE='hoge desu yo'
FUGA=''
if [ -z "$HOGE" ]; then
echo "HOGE is empty" # 🙅♂️ここに来ません
else
echo "HOGE is ${HOGE}" # 🙆♂️こちらになります
fi
if [ -z "$FUGA" ]; then
echo "FUGA is empty" # 🙆♂️こちらになります
else
echo "FUGA is ${FUGA}" # 🙅♂️ここに来ません
fi
결과
$ bash test.bash
HOGE is hoge desu yo
FUGA is empty
htp : // 우니 x. s c x x 짱. 코 m / 쿠에 s 치온 s / 146942 / HO W-KAN-I-ST-F-A-A-A B-E-S-MPTY-R 세
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 18096670 / うぁ t 도에 s ~ 메안 엔 - 바 sh
디렉토리가 존재합니까?
if [[ -d "path/to/target" ]]; then
echo 'Directory exists'
exit 1
fi
변수 전개
기본적으로 $
및 변수 이름.
예 :) $HOGE
캐릭터 라인이 연속하는 경우에 확실하게 전개시키려면 $
의 뒤에 중괄호로 변수명을 쓴다.
예 1 :)
예 2 :) $HOGEFUGA
인수 처리(Arguments)
1번째의 인수를 ${HOGE}FUGA
에 대입. 지정되어 있지 않으면 $PROFILE
를 대입.
test.shPROFILE=${1:-default}
echo $PROFILE
$ ./test.sh profile_desu
profile_desu
변수가 정의되면 ○○
삼항 연산자적인 것입니다.
test.shHOGE=hoge
FUGA=${HOGE-fuga} # $HOGEは定義されているのでhogeが参照される
echo $FUGA # hoge
PIYO=${HOGE2-piyo} # $HOGE2は定義されていないのでpiyoが参照される
echo $PIYO; # piyo
탭 문자 등을 내고 싶습니다.
default
를 사용하여 쉘에 배포합니다.
$ $'\t' # タブ文字が出る
$ echo 'mae'$'\t''usiro' # mae usiro
맨 위에 탭 문자를 추가합니다.
$ echo 'hoge' | sed -e 's/^/'$'\t''/g'
curl 다운로드
Bash 스크립트는 아니지만 스크립트 내에서 사용하는 명령.
curl -LOJ https://example.com
옵션
설명
-L
리디렉션을 따르십시오. (리디렉션이 맞는 경우 추적하여 다음 URL에 자동으로 액세스)
-O
파일을 그대로 저장한다.
-J
서버로부터 지정된 파일명을 보존시의 파일명으로서 사용한다. 이 옵션이 없으면 URL의 말미를 파일명으로서 사용하려고 하기 위해(때문에), 토큰이나 쿼리 파라미터 첨부의 URL등의 다운로드시에 고생합니다.
ShellCheck
쉘 구문에 오류가 있는지 확인할 수 있습니다.
수중에서도 할 수 있고, 온라인에서도 가능합니다.
Reference
이 문제에 관하여(현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yousan/items/813bea9bdfe2e1593136
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1번째의 인수를
${HOGE}FUGA
에 대입. 지정되어 있지 않으면 $PROFILE
를 대입.test.sh
PROFILE=${1:-default}
echo $PROFILE
$ ./test.sh profile_desu
profile_desu
변수가 정의되면 ○○
삼항 연산자적인 것입니다.
test.shHOGE=hoge
FUGA=${HOGE-fuga} # $HOGEは定義されているのでhogeが参照される
echo $FUGA # hoge
PIYO=${HOGE2-piyo} # $HOGE2は定義されていないのでpiyoが参照される
echo $PIYO; # piyo
탭 문자 등을 내고 싶습니다.
default
를 사용하여 쉘에 배포합니다.
$ $'\t' # タブ文字が出る
$ echo 'mae'$'\t''usiro' # mae usiro
맨 위에 탭 문자를 추가합니다.
$ echo 'hoge' | sed -e 's/^/'$'\t''/g'
curl 다운로드
Bash 스크립트는 아니지만 스크립트 내에서 사용하는 명령.
curl -LOJ https://example.com
옵션
설명
-L
리디렉션을 따르십시오. (리디렉션이 맞는 경우 추적하여 다음 URL에 자동으로 액세스)
-O
파일을 그대로 저장한다.
-J
서버로부터 지정된 파일명을 보존시의 파일명으로서 사용한다. 이 옵션이 없으면 URL의 말미를 파일명으로서 사용하려고 하기 위해(때문에), 토큰이나 쿼리 파라미터 첨부의 URL등의 다운로드시에 고생합니다.
ShellCheck
쉘 구문에 오류가 있는지 확인할 수 있습니다.
수중에서도 할 수 있고, 온라인에서도 가능합니다.
Reference
이 문제에 관하여(현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yousan/items/813bea9bdfe2e1593136
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
HOGE=hoge
FUGA=${HOGE-fuga} # $HOGEは定義されているのでhogeが参照される
echo $FUGA # hoge
PIYO=${HOGE2-piyo} # $HOGE2は定義されていないのでpiyoが参照される
echo $PIYO; # piyo
default
를 사용하여 쉘에 배포합니다.$ $'\t' # タブ文字が出る
$ echo 'mae'$'\t''usiro' # mae usiro
맨 위에 탭 문자를 추가합니다.
$ echo 'hoge' | sed -e 's/^/'$'\t''/g'
curl 다운로드
Bash 스크립트는 아니지만 스크립트 내에서 사용하는 명령.
curl -LOJ https://example.com
옵션
설명
-L
리디렉션을 따르십시오. (리디렉션이 맞는 경우 추적하여 다음 URL에 자동으로 액세스)
-O
파일을 그대로 저장한다.
-J
서버로부터 지정된 파일명을 보존시의 파일명으로서 사용한다. 이 옵션이 없으면 URL의 말미를 파일명으로서 사용하려고 하기 위해(때문에), 토큰이나 쿼리 파라미터 첨부의 URL등의 다운로드시에 고생합니다.
ShellCheck
쉘 구문에 오류가 있는지 확인할 수 있습니다.
수중에서도 할 수 있고, 온라인에서도 가능합니다.
Reference
이 문제에 관하여(현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yousan/items/813bea9bdfe2e1593136
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
curl -LOJ https://example.com
쉘 구문에 오류가 있는지 확인할 수 있습니다.
수중에서도 할 수 있고, 온라인에서도 가능합니다.
Reference
이 문제에 관하여(현장에서 자주 사용하는 쉘 커멘드를 정리하는 Bash 스크립트의 조작 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yousan/items/813bea9bdfe2e1593136텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)