database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41113 게시물 읽기
No. 41113
linux 관련 엄청 어려운 문제
작성자
초보DBA(r00tlee)
작성일
2016-03-31 15:42
조회수
7,272

 sh에서 switch user 한다음 변수에 값을 담기 위해서는 어떻게 해야하는지..

 

#!/bin/bash

su - db2inst1 << EOF

BBC="abab"

echo "$BBC"

EOF

 

이런 방법도 해보고 다양하게 해보았지만 잘 안되네요.. 어떻게 switch user 한다음 변수에 값을 사용할 수 있나요? 글로벌로 담아서 쓰는 용도가 아닙니다. ㅠㅠ

 

2. switch user한다음

#!/bin/bash

su - db2inst1 << EOF

echo "1" > /home/db2inst1/test.txt

if [ `cat /home/db2inst1/test.txt` = 1 ]; then

  echo "hihi"

else

  echo "nono"

fi

EOF

 

이런 방법으로 하면 파일을 생성하기전에 제일 먼저 cat이 실행되어 파일이 없다고 간주하여.. echo nono가 찍힙니다. 물론 파일은 존재하고 값도 존재하고요.. 너무 어렵네요 어떤식으로 비교를해서 hihi를 찍어야 할까요..

도움 부탁드립니다..

이 글에 대한 댓글이 총 2건 있습니다.

 $BBC의 치환 시점이 su 후 bash에서가 아니고 현 shell에서 이기때문에 그런 문제가 발생합니다.

$BBC를 \$BBC로 바꿔보세요.

 

두번째도 같은 경우이고 

`cat ... test.txt` 를 \`cat ... test.txt\` 이렇게 변경해서 현shell이 해당부분을 evaluation하지 않게 해주면 의도대로 동작할겁니다.

고서진(longflat)님이 2016-04-01 13:42에 작성한 댓글입니다.

 감사합니다. 많은 도움이 되었습니다. :)

초보DBA(r00tlee)님이 2016-04-14 03:31에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41116쿼리 결과물에서 특정한 DATA 제외 [2]
한상원
2016-04-06
7338
41115Oracle SID, USER, DB 간의 관계?? [1]
알파공
2016-04-01
7267
41114index range scan을 unique scan으로 풀리도록 할 수 있나요? [1]
2016-04-01
7107
41113linux 관련 엄청 어려운 문제 [2]
초보DBA
2016-03-31
7272
41112암호화 질문입니다.
우와
2016-03-30
7065
41111특정문자 개수 세는 방법 알려주세요 [1]
초보임당
2016-03-29
7851
41110SP 호출 후 OUT 파라미터로 SELECT구문 생성 가능여부
권순환
2016-03-28
7361
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.085초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다