#!/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