shell script활용

want dev·2023년 4월 21일

ShellScript

목록 보기
1/3

#!/bin/bash ->어떤 형식의 파일 쓸껀지
#Title :
#author:
#date:

ls -rlt > /home/kimjm3435/sh/$(date +%Y%m%d).txt

Ls명령어 사용후 출력된 내용을 오늘 날짜 파일에 저장

Today=date +%Y%m%d 여기서 `는 백틱
투데이라는 변수를 만들고
Printf "Today is %s\n" $today로 printf 출력으로 사용

2> /dev/null
명령어 뒤에 2> /dev/null을 추가하면, 명령어 실행 시 발생하는 에러 메시지를 무시하고 결과를 출력할 수 있습니다.

-eq 같다
-gt 크다
-ge 크거나 같다
-lt 작다
-le 작거나 같다

test 연산자를 이용해 x의 값을 입력받고 큰지 작은지 같은지
test 연산자를 사용하지 않은 조건문 [ 조건 ] 사용법

#!/bin/bash	#!/bin/bash
read x  	read x y
if test $x -gt 5	if [ $x -eq $y ];
then 	then
        echo "x > 5"	        echo "same"
elif test $x -lt 5	else
then	        echo "diffrent"
        echo "x <5"	fi
else
        echo "eq"
fi
#### ```


case 구문 활용하기 변수를 입력받고 조건에 따라 출력 esac로 종료
read ans
case $ans in
yes) echo "????"  조건에 대소문자 구별없이 하려면 [Yy]es 이렇게 사용
no) echo "?????"
*) echo "?????"
esac

expr 명령어로 산술연산을 할때 
x=10
y=10
expr $x + $y

expr $x - $y

expr $x '*' $

expr $x '/' $y

같이 사용한다 * 는 와일드카드로 취급하기에 ' '로 묶어주어야 한다.
결과값을 변수로 넣고싶을때
sum=$(expr $x + $y) 

let 명령어로 산술연산을 사용할때 $ 를 넣지 않는다
let sum=5+5
echo $sum ---> 25출력 let 은 기본 산술 연산 명령어(+ - * /)가능
x=1
let x=x+1
let x++
echo $x ------------>3이 출력된다.
let 대신 ((x=x+1))처럼 사용해도 된다

while 성공하는 동안 반복
while 조건
do
	명령
done

until 성공할 때 까지 반복
until 조건
do
	명령
done

for 주어진 list 만큼 반복
for num in 1 2 3 4 5 --->$(seq 5) / {1..5}를 해도 같은 결과가 나온다.
do
	명령
done
또한 *를 사용해 파일 목록개수를 활용할수있다.
for file in *
do
	ls $file
done

0개의 댓글