Minerals : 1,911,789 / Level :
총수
DATE : 2013-10-02 12:37:37 / READ : 665
shell PROGRAM2
-shell변수:
$a=20
$b=kim
$echo $a $b
-입출력 명령:
echo =>출력
read =>입력
$echo "TesttnProgramtn"
출력값 : TesttnProgramtn
$echo -e "TesttnProgramtn"
출력값 : Test
Program
$echo -e "TesttProgramtn"
출력값 : Test Program //줄이 안바뀜
$echo "Test $HOME"
출력 : Test /home/20103762 //HOME의 주소가 나옴
$echo 'Test $HOME'
출력 : Test HOME //HOME이 그대로 출력
$echo Test $HOME
출력 : Test /home/20103762 //HOME의 주소가 나옴
$echo "Test `date` Program `pwd`"
출력 : Test 2013.10.02~어쩌고 Program /home/20103762
=> 말안해도알겠지?
$echo "Program `expr 6 + 10`"
출력 : Program 16 //연산 입력할때 띄어쓰기 주의
-연산자
산술 : + - * * %
비교 : 문자열 = != > < <= >=
숫자 - eq -ne -gt -lt -le -ge
논리 : -a(AND) -o(OR) !(NOT)
$test kim=lee
$echo $?
출력 : 0 //처음 식이 거짓이기때문에 0
$test 10 -gt 5 -a 5 -lt 7
$echo $?
출력 : 1 //둘다 참이기 때문에 1
-제어문
선택 : if
switch
반복 : while
for
문제1 2개의 정수를입력받아 4칙연산한 결과를 다음 화면에 출력
echo "Input two number"
read a b
echo "a + b = `expr $a + $b`"
echo "a - b = `expr $a - $b`"
echo "a * b = `expr $a * $b`"
echo "a / b = `expr $a / $b`"
출력 : 3 7
a + b = 10
a - b = -4
a * b = 21
a / b = 0
프로그램 예1)
echo Type in the filename
read file
if test -f $file //입력한 file이 파일이면 1, 아니면 0
then
echo "$file ===> ordinary file"
fi
echo "File test end"
프로그램 예2)
echo Type in the filename
read file
if [ -f $file ]
then
echo "$file ===> ordinary file"
elif [ -d $file ] //elif는 else if 라는 뜻 -d는 디렉토리
then
echo "$file ===> directory"
else
echo "$file ===> not exist"
fi
echo "file test end"
switch로 프로그램짜기
echo "Enter your favorit number"
read digit
case $digit in
0) echo "zero";;
1) echo "one";;
2) echo "two";;
.
.
.
8) echo "eight";;
9) echo "nine";;
*) echo "Incorrect Number!!";;
exit;;
esac
[실습과제] for문 이용해서 2~9단 구구단표 출력
for digit1 in 2 3 4 5 6 7 8 9
do
for digit2 in 1 2 3 4 5 6 7 8 9
do
echo "$digit1 * $digit2 = `expr $digit1 * $digit2`"
done
echo -e "n"
done
프로그램 예1) while문 사용
echo "Input your number"
read digit
while [ $digit -ne 0 ]
do
echo $digit
digit=`expr $digit - 1` =>변수랑 뒤식이랑 띄어쓰기 붙이고 - 1은 띄어쓰기 한다.
done
[실습과제] 1~100 사이의 7의 배수들의 합계 ***시험문제***
digit=1
sum=0
while [ $digit -le 100 ]
do
if [ `expr $digit % 7` -eq 0 ]
then
sum=`expr $sum + $digit`
fi
digit=`expr $digit + 1`
done
echo "1부터 100까지 7의 배수의 합계 : $sum"
프로그램 예1) until 사용
echo "Input your number"
read digit
until [ $digit -eq 0 ]
do
echo $digit
digit=`expr $digit - 1`
done
[실습과제] 제어문을 사용해서 2013년 10월 달력 출력
[과제] Shell PROGRAM 작성. 프린터 출력해서 주석 달고 실행 결과를 첨부해서 가져오시오.
1. 2013년 전체 달력 출력
2. 임의의 정수를 입력받아 2수의 약수들을 출력
3. 2에서 100사이의 소수 출력