Shell script

2024. 2. 29. 20:09

맨 처음의 행에 시스템에 지금부터 셸 스크립트를 쓴다는 사실을 알려주기 위하여 아래 문장 명시

#!/bin/sh

 

문법

  • 주석 #
  • 입력 read 
  • 출력 echo
$ vi test.sh
#!/bin/sh

read NAME
echo "Hello, $NAME!"
$ chmod 755 test.sh
$ ./test.sh
kim				# 입력

Hello, kim!			# 출력

 

  • 변수에 값을 전달할 때는 = 의 앞,뒤에 공백 없이 작성
  • 문자열인 경우 "쌍따옴표"로 묶음
  • 변수에 액세스할 때 변수명의 앞에 $를 넣는다. 혹은 $넣어서 변수를 {}로 감싼다

$변수

${변수}

변수 기능
$0 실행된 스크립트명
$1 ~ $9 Argument, 첫 번째의 인자는 $1, 2번째 인자는 $2로 액세스
$# 스크립트에 전달된 인자의 수
$* 모든 인자를 모아 하나로 처리
$@ 모든 인자를 각각 처리
$? 직전에 실행한 커맨드의 종료 값(0은 성공, 1은 실패)
$$ 해당 쉘 스크립트의 PID
$! 마지막으로 실행한 백그라운드 PID

 

 


DB 접속

sqlplus -s 계정명/비밀번호@SID<<EOF
exit
EOF                                 # 접속 해제

 

SQL에서 스크립트 실행

SQL> @경로\\[파일이름]
# @c:\\temp\\test_data.sql

 

연습

1. linux 콘솔에서 sql 파일 작성

[oracle@kim temp]$ cat cre.sql
CREATE TABLE TEST (A NUMBER);

[oracle@kim temp]$ cat ins.sql
INSERT INTO TEST VALUES (1);
INSERT INTO TEST VALUES (2);
COMMIT;

[oracle@kim temp]$ cat sel.sql
SELECT * FROM TEST;



[oracle@kim temp]$ ll
합계 12
-rw-r--r--. 1 oracle oinstall 30  2월 29 18:35 cre.sql
-rw-r--r--. 1 oracle oinstall 66  2월 29 18:36 ins.sql
-rw-r--r--. 1 oracle oinstall 20  2월 29 18:36 sel.sql

2. sql 접속

3. sql 실행

18:36:27 TEST@cdb1>@cre.sql
Table created.
Elapsed: 00:00:00.35


18:36:36 TEST@cdb1>@sel.sql
no rows selected
Elapsed: 00:00:00.00


18:36:42 TEST@cdb1>@ins.sql
1 row created.
Elapsed: 00:00:00.34
1 row created.
Elapsed: 00:00:00.00
Commit complete.
Elapsed: 00:00:00.00


18:36:47 TEST@cdb1>@sel.sql

         A
----------
         1
         2

 

'Linux' 카테고리의 다른 글

Rocky Linux  (0) 2024.02.21
[Linux] 기본 명령어  (0) 2023.04.13
[Linux] Setup  (0) 2023.03.09

+ Recent posts