/etc/passwd
에 위치
서브 shell: 사용자가 프롬프트에서 다른 셸을 실행하여 생긴 셸
echo 입력받은 대로 출력(개행있음)
printf 개행 없이 입력받은 대로 출력
ls
cp /tmp
ls -F t
cp .txt _/ch3
ls -l h*d
? 한글자 대체
[]
; 차레대로 명령 실행
| 명령을 전달해서 실행
''
""
`` 가 명령으로 해석된다.
\
> 왼쪽의 결과를 오른쪽 파일에 덮어씀
>> 왼쪽의 결과를 오른쪽 파일에 이어붙임
< 오른쪽 파일을 왼쪽 명령어로 실행
> 파일 덮어쓰기
0< 표준입력
1> 표준출력을 오른쪽 파일에 저장
2> 표준에러를 오른쪽 파일에 저장
숫자도 문자로 읽는다. 띄어쓰기는 못 알아먹으니까 ""로 감싸주어야한다. $가 들어간 문자를 출력하려면 묶어주거나 \을 붙인다.
myvar="Hi Woo"
echo $myvar
echo "$myvar"
echo '$myvar'
echo \$myvar
read myvar
echo '$myvar'=$myvar
testval=7+10
echo $testval
#!/bin/sh
num1=100
num2=$num1 + 200
echo $num2
num3=`expr $num1 + 200`
echo $num3
num4=`expr \( $num1 + 200 \) / 10 \* 2`
echo $num4
exit 0
if [조건]
then
참일 경우 실행
else
거짓인 경우 실행
fi
#!/bin/sh
if [ "woo" != "woo" ]
then
echo "참입니다"
else
echo "거짓입니다"
fi
exit 0
#!/bin/sh
if [ 100 -eq 200 ]
then
echo "100과 200은 같다."
else
echo "100과 200은 다르다."
fi
exit 0
#!/bin/sh
fname=/lib/systemd/system/cron.service
if [ -f $fname ]
then
head -5 $fname
else
echo "cron 서버가 설치되지 않았습니다."
fi
exit 0
#!/bin/sh
case "$1" in
start)
echo "시작~~";;
stop)
echo "중지~~";;
restart)
echo "다시 시작~~";;
*)
echo "뭔지 모름~~";;
esac
exit 0
#!/bin/sh
echo "리눅스가 재미있나요? (yes / no)"
read answer
case $answer in
yes | y | Y | Yes | YES)
echo "다행입니다."
echo "더욱 열심히 하세요 ^^";;
[nN]*)
echo "안타깝네요. ㅠㅠ";;
*)
echo "yes 아니면 no만 입력했어야죠"
exit 1;;
esac
exit 0
#!/bin/sh
echo "보고 싶은 파일명을 입력하세요."
read fname
if [ -f $fname ] && [ -s $fname ] ; then
head -5 $fname
else
echo "파일이 없거나, 크기가 0입니다."
fi
exit 0
for 변수 in 값1 값2 ..
do
반복할 문장
done
#!/bin/sh
hap=0
for i in 1 2 3 4 5 6 7 8 9 10
do
hap=`expr $hap + $i`
done
echo "1부터 10까지의 합: "$hap
exit 0
#!/bin/sh
for fname in $(ls *.sh)
do
echo "--------$fname-------"
head -3 $fname
done
exit 0
#!/bin/sh
while [ 1 ]
do
echo “우분투 16.04 LTS”
done
exit 0
#!/bin/sh
hap=0
i=1
while [ $i -le 10 ]
do
hap=`expr $hap + $i`
i=`expr $i + 1`
done
echo "1부터 10까지의 합 : "$hap
exit 0
#!/bin/sh
echo "비밀번호를 입력하세요."
read mypass
while [ $mypass != "1234" ]
do
echo "틀렸음. 다시 입력하세요."
read mypass
done
echo "통과~~"
exit 0
#!/bin/sh
echo "무한반복 입력을 시작합니다(b: break, c: continue, e: exit)"
while [ 1 ] ; do
read input
case $input in
b | B )
break ;;
c | C )
echo "continue를 누르면 while의 조건으로 돌아감"
continue ;;
e | E )
echo "exit를 누르면 프로그램(함수)를 완전히 종료함"
exit 1 ;;
esac;
done
echo "break를 누르면 while을 빠져나와 지금 이 문장이 출력됨."
exit 0
#!/bin/sh
hap=0
i=1
until [ $i -gt 10 ]
do
hap=`expr $hap + $i`
i=`expr $i + 1`
done
echo "1부터 10까지의 합 : "$hap
exit 0
func_name() {
definition
$1, $2등 사용
}
func_name 10 20 <- call
#!/bin/sh
hap () {
echo `expr $1 + $2`
}
echo "10 더하기 20을 실행합니다"
hap 10 20
exit
#!/bin/sh
str="ls -l test18.sh"
echo $str
eval $str
exit 0
// test1.sh
#!/bin/sh
echo $var1
echo $var2
exit 0
// test2.sh
#!/bin/sh
var1="지역 변수"
export var2="외부 변수"
sh test1.sh
exit 0
echo "오늘 날짜는 $(date)입니다."
set $(date)
echo "오늘은 $4요일 입니다."
exit 0
#!/bin/sh
myfunc() {
str=""
while [ "$1" != "" ] ; do
str="$str $1"
shift
done
echo $str
}
myfunc AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK
exit 0