문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
linux:bash [2022/01/13 15:16] kwon37xi [직전 명령의 argument 대체] |
linux:bash [2024/02/07 08:41] (현재) kwon37xi [File Path dir/filename 분리] |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== Bash ====== | ====== Bash ====== | ||
| + | * https:// | ||
| ===== shell template ===== | ===== shell template ===== | ||
| 줄 6: | 줄 7: | ||
| ===== Redirect ===== | ===== Redirect ===== | ||
| * http:// | * http:// | ||
| + | * [[https:// | ||
| * '' | * '' | ||
| * '' | * '' | ||
| 줄 15: | 줄 17: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| + | |||
| + | ===== $- ===== | ||
| + | * 현재 shell 의 설정값 | ||
| + | * [[https:// | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| ==== 직전 명령의 argument 대체 ==== | ==== 직전 명령의 argument 대체 ==== | ||
| 줄 27: | 줄 39: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| - | * '' | + | * '' |
| ===== 실행 결과 변수에 저장 ===== | ===== 실행 결과 변수에 저장 ===== | ||
| <code sh> | <code sh> | ||
| 줄 36: | 줄 48: | ||
| test=`basename " | test=`basename " | ||
| </ | </ | ||
| + | |||
| + | ===== 환경변수에 저장된 환경변수 이름으로 값 얻기 ===== | ||
| + | * [[https:// | ||
| + | * '' | ||
| + | <code sh> | ||
| + | foo=bar | ||
| + | test=foo | ||
| + | echo ${!test} | ||
| + | </ | ||
| + | |||
| ===== 계산 하기 ===== | ===== 계산 하기 ===== | ||
| 줄 64: | 줄 86: | ||
| [[http:// | [[http:// | ||
| <code sh> | <code sh> | ||
| + | # -f " | ||
| + | # -w : 제일큰 숫자를 기준으로 알아서 0 채워주기 | ||
| for i in $(seq -f " | for i in $(seq -f " | ||
| do | do | ||
| 줄 119: | 줄 143: | ||
| ===== VI 모드/ Emacs 모드 ===== | ===== VI 모드/ Emacs 모드 ===== | ||
| * VI 에디터 편집 모드로 명령행을 변경한다. | * VI 에디터 편집 모드로 명령행을 변경한다. | ||
| - | * [[http:// | + | * [[http:// |
| + | * [[https:// | ||
| + | <code sh> | ||
| set -o vi | set -o vi | ||
| </ | </ | ||
| 줄 169: | 줄 195: | ||
| dirname "/ | dirname "/ | ||
| basename "/ | basename "/ | ||
| + | basename "/ | ||
| + | |||
| + | |||
| + | # filename 이라는 환경변수가 있을때 | ||
| + | filename=" | ||
| + | |||
| + | # 확장자 (extension) 추출 | ||
| + | " | ||
| + | # 확장자를 제외한 파일 이름 추출 | ||
| + | " | ||
| </ | </ | ||
| * [[linux: | * [[linux: | ||
| 줄 201: | 줄 237: | ||
| fi | fi | ||
| </ | </ | ||
| + | |||
| + | ===== environment variable empty 검사 혹은 기본값 지정 ===== | ||
| + | * 따옴표로 감싸야 globbing 과 문자열 분할을 막을 수 있다. | ||
| + | * [[https:// | ||
| + | <code sh> | ||
| + | # if 문 | ||
| + | if [ -z " | ||
| + | FOO=' | ||
| + | else | ||
| + | FOO=${VARIABLE} | ||
| + | fi | ||
| + | |||
| + | # VARIABLE 환경변수가 존재하지 않으면 empty 이면 FOO를 default 로 설정 | ||
| + | FOO=" | ||
| + | |||
| + | # VARIABLE 환경변수가 존재하지 않거나 empty 이면 FOO와 VARIABLE을 모두 default 로 설정 | ||
| + | FOO=" | ||
| + | |||
| + | # 첫번째 명령행 인자에 대해 존재하지 않으면 DEFAULTVALUE 환경변수의 값으로 지정하기 | ||
| + | FOO=" | ||
| + | |||
| + | # chainig도 된다. | ||
| + | DOCKER_LABEL=${GIT_TAG: | ||
| + | </ | ||
| + | |||
| ===== test ===== | ===== test ===== | ||
| 줄 252: | 줄 313: | ||
| ===== shopt ===== | ===== shopt ===== | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | ==== shopt extglob ==== | ||
| + | * globbing 시에 추가할 파일이 아닌 제외할 파일을 지정할 수 있다. | ||
| + | * [[https:// | ||
| + | * 제외할 glob 을 '' | ||
| + | <code sh> | ||
| + | shopt -s extglob | ||
| + | # *Music* 을 제외하고 복사 | ||
| + | cp !(*Music*) / | ||
| + | |||
| + | # extglob 끄기 | ||
| + | shopt -u extglob | ||
| + | </ | ||
| ===== Special parameters ===== | ===== Special parameters ===== | ||
| 줄 277: | 줄 351: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | ===== background job ===== | ||
| + | * '' | ||
| + | * '' | ||
| ===== 참조 ===== | ===== 참조 ===== | ||