[완료]쉘스크립트안에서 변수의 값, 즉 문자열안에 포함되는 단어 검색 및 치환 이 잘안되요.
안녕하세요. 쉘스크립트를 처음 다뤄보느라 애매하기도 하고 어려움이 있어서 질문을 올립니다.
제목그대로 입니다.
파일기준으로 문자열을 수정하는게 아닙니다.!!!!!!
파일기준이 아니라 변수기준으로 수정을 해야합니다. ^^
bash 쉘입니다.
내용을 보시면
ORDER=`gsetting get com.canonical.Unity.Panel systray-whitelist` #요건 터미널에서 실행할 명령어입니다.
RESULT= #실행하고 명령어의 결과를 저장할녀석
RESULT=$ORDER #명령어를 실행하고 나서 받아오는 결과를 RESULT변수에 넣었습니다.
if [ 1.여기에서 RESULT에 "Nabi"가 포함이 안되어 있는지를 체크하여 참이라면 ]; then
# 예를 들면 ORDER결과가 "['Orange', 'Apple', 'Grape']" 입니다.
# 2.여기에서 Nabi를 붙여서 ORDER ="['Orange', 'Apple'. 'Grape', 'Nabi']" 로 만들어 다시 ORDER에 넣어야합니다.
fi
제가 생각한건 if문 안에서 파일이 아니니까 grep이나 sed는 사용 못할테고 c언어에서 strcmp와 비슷한기능을 하는 명령어가 없는것 같습니다.
cut으로 잘라서 시도해 보았지만.. 배열에 넣는것도 잘 모르겠네요. ㅠㅠ
1.
2. 번 2가지를 해결해야하는데 2번은 문자열 패턴인가를 이용해여 ']'를 'OK'] 로 치환하면 될것 같긴합니다.
스크립트 내용관련된 포스팅만 주구장창 보고 따라했는데도 역시 많이 안해봐서인지 개념을 못잡아서 허둥지둥 대고 있습니다.
한가지 팁만이라도 알려주시면 참고해서 작성해보도록 하겠습니다.
감사합니다.
--------------------------------------------------------------------------------
답변감사합니다. 질문내용을 약간 바꾸었습니다. 죄송합니다. ㅠㅠ
음 ..
bash 의 replace 썼는데, 그냥 sh 라면 sed 쓰시면 될 것 같네요.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
감사합니다. 참고해서 작성해보도록 하겠습니다. ^^
감사합니다. 참고해서 작성해보도록 하겠습니다. ^^
[해결] 부가설명을 달아보겠습니다. shell
[해결] 부가설명을 달아보겠습니다.
shell scrip에서 문자열이라고 칭하는 윗예제에서
ORDER="['Orange', 'Apple', 'Grape']"
요렇게 있을때에는 문자형함수(?) 라고 해야하나요?
네 여기서 예를들어보면
echo ${ORDER/'Grape'/'StrawBerry'}
요랬을때는 문자열이 잘 치환이 되서
['Orange', 'Apple', 'StrawBerry']
요렇게 나옵니다.
하지만 그 안에 영문자+특수기호가 들어갔을때에는 어떻게 고쳐야 하냐면!!!
echo ${ORDER / \[ "'Orange'" / \] "'What?$%#$'"}
(1) (2) (3) (4) (5) (6) (7)
(1) 대상문자열
(2) 구분자 1
(5) 구분자 2
(3) 특수문자가 꼈다면 역슬래쉬(\)를 앞에 붙이고 특수문자를 바로뒤에쓰면 의미없는 특수문자로 인식
(4) ""(쌍따옴표) 안에 특수문자가 꼈던 어쨌든 아무렇게나 넣어주세요.
(6) (3)번과 마찬가지
(7) ""(쌍따옴표) 안에 바꿀내용을 적어주세용 아무렇게나 넣어주세요.
이상으로 처리하면 간단한 특수문자+영문문자열 치환이 성공하게 되겠습니다.
가장 기본적인 규칙을 잘 숙지하고서 스크립트를 작성해야겠다는 생각이 드네요.
하루이상을 고생한 기억을 몇자 남깁니다.
삽질 안하시길 ^^
한 스트링 안에 다른 스트링이 들어있나 테스트하는
한 스트링 안에 다른 스트링이 들어있나 테스트하는 건
http://stackoverflow.com/questions/229551/string-contains-in-bash
이 글타래를 보시면 여러 방법이 나와 있네요.
좋은 하루 되세요!
아네 감사합니다. ^^ 쭉 둘러보았습니다.
아네 감사합니다. ^^ 쭉 둘러보았습니다.
댓글 달기