반응형



아직 포스팅할 내용들이 많지만..

db 연결 방법이 궁금해서 아주 간단한 mysql 연결 shell script 를 찾았습니다.


음.. 일단 mysql 서비스가 실행 한다는 가정하에.. dbtest.sh 라는 파일을 만듭니다.


vim dbtest.sh

 + dbtest.sh                                                                      

  1 #!/bin/bash

  2 mysql -u root redCat<<EOFMYSQL

  3 select * from MenuItem;

  4 EOFMYSQL


스크립트를 작성 후, 내용을 저장 한 뒤 권한을 바꿔줍니다. 

좀더 편리하게 만들 예정입니다만, 일단 가장 간단한 스크립드를 먼저 공유합니다.


chmod 700 dbtest.sh


제 맥에서 돌고 있는 mysql 서비스엔 redCat 이라는 데이터베이스가 있습니다. redCat 데이터 베이스 안에 있는 MenuItem 테이블의 내용을 모두 성공적으로 화면에 보여주었네요.


이상입니다. 

반응형
반응형


Vim 사용하시는 분들은 아마도 여러 세팅을 하여 config 을 저장할 수 있도록 한 뒤 사용중이라고 하네요. 이번에 간단하게 줄 번호 보여주는 세팅 과 인덴트 를 자동으로 해주는 세팅을 만들어봤습니다.


기본적으로 .vimrc 파일이 없어서 저는 만들어야 했습니다. 만들기 전에 확인 필수 입니다.


vim .vimrc



이렇게 만들고 나면 vim 실행하니 제 화면이 아래와 같이 변하였습니다.

그외에 더 많은 세팅을 원하시면 다음 링크가 유명한 Ultimate VIM configuration 입니다.


여하튼 vim 세팅은 이정도로 하고, 쉘 스크립트의 if-else 예문을 소개합니다.

shell script 의 if-else 는 간단합니다. 주의해야 할 점은 비교 변수와 "[" 그리고 시작의 "if" 사이에 모두 공백이 필요합니다.



간단하게 echo 로 이름을 묻고, name 변수에 read 해줍니다. 같은 방법으로 나이를 물은 뒤 age 변수에 read 하지요.


if 문의 기본 문법은 if [ 변수 test 대상 ] then 실행문 else 실행문 fi

이렇게 됩니다. if 로 시작하여 if 의 반대인 fi 로 끝을 내 줍니다. 비교 test 는 -lt (less than 보다 작다) 를 사용했는데요, 그외 다른 어떤 비교 test 들이 있는지는 확인 가능합니다.


여기서는 간단하게 18 세 이상이면 맥주를.. 이하면 안된다.. 라고 간단하게 출력합니다.


man test

혹은

man [


메뉴얼 내에 많은 내용이 있는데요 그중 몇개만 추려봤습니다.


       STRING1 = STRING2
              the strings are equal

       STRING1 != STRING2
              the strings are not equal

       INTEGER1 -eq INTEGER2
              INTEGER1 is equal to INTEGER2

       INTEGER1 -ge INTEGER2
              INTEGER1 is greater than or equal to INTEGER2

       INTEGER1 -gt INTEGER2
              INTEGER1 is greater than INTEGER2

       INTEGER1 -le INTEGER2
              INTEGER1 is less than or equal to INTEGER2

       INTEGER1 -lt INTEGER2
              INTEGER1 is less than INTEGER2

       INTEGER1 -ne INTEGER2
              INTEGER1 is not equal to INTEGER2


자.. 이렇게 만들어진 스크립트 테스트를 하면 결과는 다음과 같습니다.

항상 실행 전에 파일 접근 권한을 700 으로 사용자에게 읽기 쓰기 실행 권한을 부여합니다.




간단한 쉘 스크립트 내 if-else 사용법을 알아봤습니다. 


다음은 if-elif-else 예문입니다. 최간단 계산기.


1) 2개 의 argument 를 받습니다.

2) 계산법을 받습니다.

3) 계산을 출력합니다.


vim calc.sh



받을 argument 들은 $1, $2 로 받습니다.

$(($1+$2)) 로 계산 합니다.



결과입니다. 실행 시, argument 를 2개 넣어줍니다. 예에서는 8 과 9 로 실행하였습니다.

반응형
반응형

Shell Script 의 기본


bash-4.1$ x=3
bash-4.1$ echo $x
3


bash-4.1$ echo "hello     there"
hello     there

bash-4.1$ echo 'hello     there'
hello     there
bash-4.1$ echo hello      there
hello there


bash-4.1$ echo "the value of x:     $x"
the value of x:     3
bash-4.1$ echo 'the value of x:     $x'
the value of x:     $x
bash-4.1$ echo 'I have $10000'
I have $10000


bash-4.1$ echo Today is `date`
Today is Wed Aug 6 12:50:46 EST 2014
bash-4.1$ echo "Today is `date`"
Today is Wed Aug  6 12:51:00 EST 2014




permission

bash-4.1$ ls -l
total 2
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 a.txt
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 c.txt
-rw-r--r--+ 1 11776352 Students 334 Aug  6 12:40 hello.txt

bash-4.1$ chmod 600 a.txt
bash-4.1$ ls -l
total 2
-rw-------+ 1 11776352 Students   0 Jul 30 13:06 a.txt
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 c.txt
-rw-r--r--+ 1 11776352 Students 334 Aug  6 12:40 hello.txt

bash-4.1$ chmod 644 a.txt
bash-4.1$ ls -l
total 2
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 a.txt
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 c.txt
-rw-r--r--+ 1 11776352 Students 334 Aug  6 12:40 hello.txt

first --- user (u)
second --- group (g)
third --- other (o)

0 000
1 001 * execute = 1
2 010 * write = 2
3 011
4 100 * read = 4
5 101
6 110
7 111

readable, writable, executable = 4+2+1 = 7 (rwx)

chmod 755 myfile
chmog o+x myfile
chmog o-x myfile



Script 실행


bash-4.1$ hello.sh
bash: hello.sh: command not found
bash-4.1$ pwd
/home/11776352/usp/2
bash-4.1$ /home/11776352/usp/2/hello.sh
hello world
bash-4.1$ cd ..
bash-4.1$ 2/hello.sh
hello world
bash-4.1$ cd 2/
bash-4.1$ ls
a.txt  c.txt  hello.sh    hello.txt
bash-4.1$ ../2/hello.sh
hello world
bash-4.1$ ./hello.sh
hello world


 Script 응용




반응형

+ Recent posts