728x90
반응형
안녕하세요. RTLog입니다.
오늘부터 틈틈히 C Shell Script를 공부하며 작성해보겠습니다.
C Shell Script
보통 Ubuntu를 사용하신다면, Bash Shell을 많이 사용하실텐데요. Bash 기반의 Terminal에서 C Shell Script를 사용하고 싶으시다면 아래와 같이 C Shell을 설치해야 합니다. Script 실행 방법도 이어서 작성했습니다.
sudo apt-get install csh
# temp.csh (script file)
csh temp.csh
Hello World 예제를 작성해볼게요.
#!/bin/csh
# 주석 '#'
echo hello, world # Terminal에 문자열 출력
vi hello_world.csh
~ 위 내용 작성
chmod u+x hello_world.csh
csh hello_world.csh
변수 (Variable)
Shell Script에서는 변수를 정의할 수 있고, 정의된 변수는 다른 변수에서 참조할 수 있습니다. Shell 내부 참조용 변수는 "set"을 사용하고, 다른 스크립트/프로그램에서 참조할 변수는 "setenv"를 사용합니다.
- set variable_name = variable_value (해제: unset variable_name)
- set variable_name = (value1 value2 value3 … valuen)
* 명령 결과를 다른 명령의 일부분으로 사용하는 것도 가능 " ` " 을 사용
1 #!/bin/csh
2
3 # 공백이 포함되지 않은 한 단어는 단독으로 작성
4 set name = lee
5 set age = 28
6 set LogFile = /tmp/log.txt
7
8 # 공백을 포함한 여러 단어는 큰 따옴표를 사용하여 작성
9 set test_string = "hi hello world"
10
11 # 여러 개의 변수를 저장하는 "집합 변수"는 괄호를 사용하여 작성
12 set test_set = (in1 in2 in3 in4)
13
14
15 echo $name
16 echo $LogFile # 변수 참조
17
18 echo $test_set
19 echo $test_set[0] # 집합 원소 변수 참조
20 echo $test_set[1]
21 echo ${test_set}1
22
23 # 변수 내 단어 개수 반환
24 echo $#test_set
25
26 # 변수 존재 여부 반환 (1/0) & 변수 해제
27 echo $?name
28 unset name
29 echo $?name
30
31 # 파일 경로 이름 지시자
32 set cf = /usr/bin/test.c
33 echo $cf:r
34 echo $cf:h
35 echo $cf:t
36 echo $cf:e
37
38 #Option | Meaning | Command | Result
39 #------- | ----------- | -------------- | ---------------
40 #r | root | echo $cf:r | /usr/bin/test
41 #h | header | echo $cf:h | /usr/bin
42 #t | tail | echo $cf:t | test.c
43 #e | extension | echo $cf:e | c
44
45 # 명령어를 통한 초기화 (`)
46 set date=`date`
47 echo $date
48 # 인용과 확장 참고
49 set name=lee
50 echo $name # lee
51 echo ${name} # lee
52 echo "$name" # lee
53 echo '$name' # $name
54 echo "'$name'" # 'lee'
55 echo \$name # $name
56
57 # 명령어
58 set ls="ls -al"
59 eval $ls
60 $ls
61 ls # 그냥 입력하면, 터미널에서 ls 명령어 실행
감사합니다.
728x90
반응형
'Linux' 카테고리의 다른 글
[Linux] C Shell Script - Operator (0) | 2024.03.26 |
---|---|
[Linux] C Shell Script - 사용자 입력, 인자 (0) | 2024.03.26 |
[Linux] Permission (0) | 2024.03.15 |
[Linux] Pipe (0) | 2024.03.14 |
[Linux] Redirection (0) | 2024.03.14 |