티스토리 뷰
Variables
variable="value string"
variable을 설정시에 equal 기호 전 후로 공백을 넣으면 안된다. 공백은 쉘에서 메타캐릭터이다.
variable의 이름은 숫자로 시작하면안된다.
variable은 언더바 _ 의 특수기호만을 사용가능하다.
variable 값은 shell process 메모리에 저장된다. (Local variable) 따라서 시스템을 껐다키면 사라진다.
variable 값은 기본적 데이터 타입은 문자열string이다.
재밌는 예
$ aster='*'
$ echo $aster // -> $ echo * -> $ echo [files...]
programs script test.sh xx.sh
$ echo "$aster" // -> $ echo "*"
*
중괄호의 사용
Concatenating Variables and Strings
$ last_name=Mudd
$ print $last_nameier
sh: last_nameier: Parameter not set.
$ print "$last_name"ier
Muddier
$ print ${last_name}ier
Muddier
Variable Substrings
filename=utility.ksh
$ ${filename#*.} 왼쪽에서 *. 을 잘라 "ksh" return, ##은 maximum matching 이다.
$ ${filename%.ksh} 오른쪽에서 .ksh을 잘라 "utility" return
실습
$ /home/user13/mycopy
Usage: mycopy file1 file2
$ vi mycopy
"mycopy" 7 lines, 88 characters
#! /usr/bin/sh
if [ $# -lt 2 ]
then
printf "Usage: ${0##*/} file1 file2\n"
exit 1
fi
$ grep '$0##\*/' * //모든 파일중에서 다음과 같은 문법찾기
실습1
$ cat goto.sh
echo $PWD
echo $OLDPWD
cd /home/user13/script/module03
echo $PWD
echo $OLDPWD
cd
-> child shell process의 OLDPWD를 출력하므로, program에 의해 생성된 child shell은 OLDPWD를 가지지 않는다. goto.sh 파일 내용 안에 cd 명령어를 삽입해 다른곳에 들렀다오면 OLDPWD를 출력가능하다.
실습2
$ ex3-4.sh
Size of the system log: 34095 lines
Number of entries in /tmp: 35
Permissions on my .profile: -rw-r--r--
$ cat ex3-4.sh
log_size=$(wc -c /var/adm/syslog/syslog.log | cut -f1 -d" ")
num_objects=$(ll /tmp |wc -l)
perms=$(ll $HOME/.profile | cut -f1 -d" ")
print "Size of the system log: $log_size lines"
print "Number of entries in /tmp: $num_objects"
print "Permissions on my .profile: $perms"
'IoT 과정' 카테고리의 다른 글
Designing Program Output (0) | 2017.07.06 |
---|---|
User Input (0) | 2017.07.05 |
Shell Scripting (0) | 2017.07.05 |
POSIX Shell Programming (0) | 2017.07.05 |
HPUX - Managing Users and Groups (0) | 2017.06.26 |
- Total
- Today
- Yesterday
- flutter
- 자바스크립트 예제
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- Simulation
- 이산수학
- 최단경로 알고리즘
- 그라파나
- beginning javascript
- 백준
- 데이터 중심 애플리케이션 설계
- paul wilton
- rosen
- 아레나시뮬레이션
- 아레나 시뮬레이션
- 시뮬레이션
- 자바스크립트
- 로젠
- 아레나
- 대규모 시스템 설계 기초
- 명제논리
- 이산 수학
- Grafana
- javascript
- grafana cloud
- arena simulation
- 항해99
- Discrete Mathematics
- 엄청난 인내심과 시뮬레이션을 위한 아레나 툴
- Propositional and Predicate Logic
- Arena
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |