표준 입력(stdin): 파일 디스크립터 0표준 출력(stdout): 파일 디스크립터 1표준 오류(stderr): 파일 디스크립터 2위의 구문은 다음과 같이 표현할 수도 있다.즉, 리다이렉션은 표준 출력을 기본값으로 한다.">": Overwrite">>": append
mydate.sh은 다음과같다.sandbox형태로 처리하기 하는지 확인을 위한 작업은 다음과 같다.쉘스크립트 안과 밖의 할당 범위가 다르다.
하지만 위와같이 환경변수를 할당하는 경우, 세션에 재접속을 하게 되면 해당 환경변수는 이전의 값으로 돌아와있다. == 영구적인 반영이 아님해당 세션이하의 범위에서는 환경변수값이 유지된다. == 다른 세션으로의 이동 or shell script 작성등 \- 그러나, 정
$1, $2, $3 ... ${10}, ${11}과 같은 것으로, 매개변수 입력을 받을 때 사용 가능특정 확장자 파일을, 다른 확장자 파일로 바꾸는 스크립트는 다음과 같다.
find . -iname "\*.jpg" -print0 | xargs -0 rm -rf\-iname: 대소문자 허용\-print0: find한 문자끝에 null문자 삽입| xargs: 앞의 실행 명령어의 결과를 뒤의 명령어의 인수로서 사용\-0: null문자를 기준으로
배열의 원소 구분은 쉼표 가 아닌, 공백for i in "${!array@}": 반복문을 활용할때 많이 사용되는 구문${!array@}: 배열의 index number를 갖는다.다음과 같이 key:value 형태의 배열 활용도 가능하다.
PS3 : select옵션을 처리할 때, 나타나는 문자열이다.case문과 같이 사용하자고 한다면, 다음과 같은 shell script를 작성할 수 있다.
일련의 숫자 생성시 유용한 명령어이다.일련의 감소 숫자 생성도 가능하다.다음과 같이 몇배수로 만들지도 설정이 가능하다.seperator 지정이 가능하다.
shell script에서는 인용부호를 사용해야 할 때와, 사용하지 않아야 할 때를 구분할 줄 알아야한다.(1)(2)
while ~ do ~ donefor ~ do ~ done위의 구문은 다음과 같은 구문으로 해석될 수 있다.ex) 1부터 100까지 더하는 함수를 만들어보자.
다음과 같이 인용부호를 사용한다면, 공백문자를 비교구문에 사용할 수 있다.인용부호를 사용하지 않고, 다음과 같이 \[..]를 사용할 수도 있다.
일정 부분을 묶어서 처리할때 쓰는 방법이다.중괄호로 묶어주면 된다.사용시 주의사항은, 끝의 중괄호 앞에 세미콜론;을 붙여줘야 한다는 것이다.
말그대로 명령을 분리해주는 역할을 하는 것으로, 한줄에 여러개의 라인을 입력할 수 있게 해준다.원래는 다음과 같은 형태를 갖는다.
command1이 성공적으로 실행되지 않은 경우에, command2를 실행한다.command1과 command2를 실행한다.
$? : 가장 최근 시간의 실행 명령어에 error가 발생했는지 여부를 0과 1로 저장한다.쉘 스크립트 종료를 의미한다.0이 아닌 숫자라면, 같은 의미로 사용이 가능하다.
산술 연산을 위해 다음과 같이 $(())안에, 수행하고자 하는 산술 연산을 적용시키는 것을 말한다.산술확장 내부에서는, 변수명에 달러기호$를 생략할 수 있다.다음과 같이 증감 연산자도 사용이 가능하다.linux에서 true는 숫자 0으로 해석이 된다.
다음과 같이 두 가지 방법으로 명령 대체가 가능하다.명령 대체를 사용할 경우, 해당 명령어가 먼저 실행되고 이후, 다른 명령어들이 실행되는 순서로 진행된다.다음과 같은 형태로, 논리 연산자와 함께 사용하여 일정 프로그램 실행의 흐름을 만들어볼 수도 있다.