echo와 printf 비교
echo는 인자 사용 안됨, 자동 줄바꿈 O
printf는 인자를 사용해서 출력 가능, 자동 줄바꿈 X
스크립트 전달 인자 arguments
- $# : 스크립트에 전달되는 인자들의 수(C언어에서 args)
- $0 : 실행하는 스크립트의 파일명으로 실행했을 때 경로를 포함한다면 경로를 포함해서 나옵니다.
- $1, $2 … : 스크립트로 전달된 인자들(C언어에서 argv[0], argv[1]…)
1
2
3
4
5
6
|
#!/bin/bash
echo "Echo Test"
printf "printf Test\n"
printf "Name of script : %s\n" $0
printf "%d arguments %s %s\n" $# $1 $2
|
cs |
${}와 $()의 차이
- $(command) is “command substitution”
- ${parameter} is “parameter substitution”
즉 $()는 안에 명령어를 사용할 때 쓰고(ex: find)
${}는 파라미터를 이용할 때 쓴다.
1
2
3
4
5
6
|
#!/bin/bash
test="abc"
num=100
echo "$(find . -name grory.txt)"
|
cs |
1
2
3
4
5
6
7
|
#!/bin/bash
test="abc"
num=100
echo "${test}"
echo "${num}"
|
cs |
리다이렉션(redirection)
리다이렉션을 이용하면 각 스트림의 방향을 지정할 수 있습니다.
표준 출력(덮어쓰기) | > | 명령어 > 파일 | 명령어의 표준 출력 스트림의 도착 지점을 파일로 설정(덮어쓰기) |
표준 출력(추가) | >> | 명령어 » 파일 | 명령어의 표준 출력 스트림의 도착지점 파일에 내용 추가 |
표준 입력 | < | 명령어 < 파일 | 파일로부터 입력 받음 |
파이프라인( | )
리눅스에서 파이프는 연결을 제공합니다.
파이프라인을 통해 명령어와 명령어를 연결시킬 수 있습니다.
한번의 트랜젝션에 두개 또는 두개이상의 명령어를 사용할 때 하나의 결과를 가지고 다음 명령어에 사용하기 위한 작업이 필요한 경우가 있습니다.
그럴 때 주로 파이프라인을 사용 합니다.
예시로 ps 명령어와 grep 명령어를 조합할 수 있습니다.
3가지 quotation 차이
"ㅇㅇ" (double quotation)
더블쿼테이션 안에서는 일반적으로 문자열을 출력할 수 있습니다.
내부에 변수($변수명)도 포함해서 출력할 수 있습니다.
'ㅇㅇ' (single quotation)
싱글쿼테이션 안에서는 일반적으로 문자열을 출력할 수 있습니다.
더블쿼테이션보다 더 문자열을 확실하게 표현하기 위해, 변수, 명령어 사용이 안됩니다.
`ㅇㅇ` (backtick)
억음부호는 앞의 두 인용 기호와는 다른 쓰임새를 보이지만 전혀 다른 기능을 수행.
백틱 안에서 명령어를 입력하면 동작합니다.
문자열과 같이쓰려면 조합해서 써야합니다.
'IT기술 > 리눅스' 카테고리의 다른 글
[Linux] 파일, 폴더 개수 확인하기 (0) | 2023.05.26 |
---|---|
[shell] 쉘에 대한 설명, 쉘은 무엇인가?(sh, bash, csh, tcsh, ksh) (0) | 2023.04.11 |
개행 문자 \ r \ n, \ r 및 \ n의 차이점 (0) | 2023.03.29 |
[Find] 리눅스 find 명령어 정리 (0) | 2023.03.27 |
리눅스 vi 에디터 사용법 (vim 단축키 정리) (0) | 2022.04.15 |