vi 편집기를 이용하여 변수 하나를 초기화하고 #!/bin/bash a= read a
perl -pe '$.==6 and print" ${a}\n"' x.txt > y.txt
이부분에서 계속 에러가 발생하더군요
$a도 안되고 "$a" 도 안되고
어떻게 써야 저 a를 먹일수 있을까요....
쉘에서 받은 값을 환경변수로 perl에서 가져가는 방법을 써볼 수 있습니다.
#!/bin/bash a= read a export a perl -pe '$.==6 and print "$ENV{a}\n"' x.txt
http://www.perlmonks.org/?node_id=684685 www.perlmonks.org/?node_id=684685
원하시는 게 맞는지 모르겠는데 잘 되는 것 같은데요. 내가 입력한 게 x.txt의 6행 출력되기 전에 삽입되어 나오게 하시려는 거죠?
#!/bin/bash a= read a perl -pe '$.==6 and print" '${a}'\n"' x.txt
좋은 하루 되세요!
안되네요 ㅜㅜ
제가 정확히 추가할려는게 perl -pe '$.==6 and print" $serverNum\n"' serverchange.plist > b.plist
이부분인데, 윗 두분이 적어주신대로 해봤는데도 에러가 발생하네요 ㅜㅜ
글쎄요, 제대로 되는 거 확인하고 답글을 단 거라서....
"적어주신대로 해봤는데도 에러가 발생한다"라는 말씀만 하시면 더이상 해 볼 방도가 없습니다.
정확히 어떻게 했는지 코드와, 저 serverchange.plist 파일의 샘플과, 에러메시지를 적어주셔야 하다못해 다른 사람이 보고 '아 그 에러는 이래서...'하고 끼어들 여지가 있겠죠.
상황은
plist에 있는 코드를 변경하는 것이었고 그것을 실행할 bash 스크립트는
read serverNum sed '6d' ServerList.plist > ServerChange.plist perl -pe '$.==6 and print" '${serverNum}'\n"' serverchange.plist > b.plist 입니다.
변경할려는 원본 파일은 <?xml version="1.0" encoding="UTF-8"?> curKey 1_1 hostList .....
에서 보이는 1_1 입니다.
이부분에서 1_1을 입력받은 스트링으로 저장할려고 저 방식을 썼었는데, 2를 입력시
2 auto: line 14: syntax error near unexpected token `perl' auto: line 14: `perl -pe '$.==6 and print" '${serverNum}'\n"' serverchange.plist > b.plist'
이런식의 에러가 발생합니다.
이 부분을 어떻게 해야 되는지 부탁드립니다....
좋은하루되세요~
어... 지금 적어주신 저 스크립트를 마우스로 그대로 긁어서 해봤는데도 저는 아주 잘 동작하네요... =ㅅ=;;; (단 키보드로 입력한 스트링에 따옴표가 포함되면 그게 엉키면서 문제가 되는군요)
영문은 모르겠고, 그냥 머리에 떠오르는 것들만 적어보면
syntax error 가 나는 걸로 봐서 (그리고 스크립트 행번호가 14까지 진행되어 있는 걸로 봐서) 스크립트의 다른 부분에 잘못된 게 있거나... (bash는 띄어쓰기 이런 데에도 민감한 곳이 있으니까요)
아니면 bash가 아니라 오리지널 sh를 띄우고 있거나 (제 환경에서는 sh는 bash의 심볼릭링크라서, 제가 테스트해볼 수 없네요)
스크립트에 눈에 안 보이는 특수문자(윈도우 개행 문자에 포함되는 \r 같은?)가 들어 있어서 영향을 끼치고 있거나...
뭐 이 정도네요.
뭐가 문제였는지 저도 궁금하니 해결되시면 적어주시면 감사하겠습니다 ^^;
그대로 복사해서 새 파일에 만들어서 적용시키니 되더군요 =ㅅ=;;;;
그래서 그걸 다시 그부분만 그대로 원 파일에 붙여넣었더니 되었습니다.;;;;;;;;;;; ㅡㅅㅡ;;
의심해볼만한건 띄어쓰기나 "였는데..... 어찌 해결된건지 잘 모르겠네요 ㅜㅜ
계속 답변 주셔서 감사합니다 ^ㅡ^
좋은 하루 되세요!!!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
환경변수 가져가는 방법
쉘에서 받은 값을 환경변수로 perl에서 가져가는 방법을 써볼 수 있습니다.
http://www.perlmonks.org/?node_id=684685 www.perlmonks.org/?node_id=684685
원하시는 게 맞는지 모르겠는데 잘 되는 것
원하시는 게 맞는지 모르겠는데 잘 되는 것 같은데요.
내가 입력한 게 x.txt의 6행 출력되기 전에 삽입되어 나오게 하시려는 거죠?
좋은 하루 되세요!
읔 윗 두분말대로 해봤는데
안되네요 ㅜㅜ
제가 정확히 추가할려는게
perl -pe '$.==6 and print" $serverNum\n"' serverchange.plist > b.plist
이부분인데, 윗 두분이 적어주신대로 해봤는데도 에러가 발생하네요 ㅜㅜ
글쎄요, 제대로 되는 거 확인하고 답글을 단
글쎄요, 제대로 되는 거 확인하고 답글을 단 거라서....
"적어주신대로 해봤는데도 에러가 발생한다"라는 말씀만 하시면 더이상 해 볼 방도가 없습니다.
정확히 어떻게 했는지 코드와, 저 serverchange.plist 파일의 샘플과, 에러메시지를 적어주셔야
하다못해 다른 사람이 보고 '아 그 에러는 이래서...'하고 끼어들 여지가 있겠죠.
좋은 하루 되세요!
제가 너무 정황없이 적었네요..
상황은
plist에 있는 코드를 변경하는 것이었고 그것을 실행할 bash 스크립트는
read serverNum
sed '6d' ServerList.plist > ServerChange.plist
perl -pe '$.==6 and print" '${serverNum}'\n"' serverchange.plist > b.plist
입니다.
변경할려는 원본 파일은
<?xml version="1.0" encoding="UTF-8"?>
curKey
1_1
hostList
.....
에서 보이는 1_1 입니다.
이부분에서 1_1을 입력받은 스트링으로 저장할려고 저 방식을 썼었는데, 2를 입력시
2
auto: line 14: syntax error near unexpected token `perl'
auto: line 14: `perl -pe '$.==6 and print" '${serverNum}'\n"' serverchange.plist > b.plist'
이런식의 에러가 발생합니다.
이 부분을 어떻게 해야 되는지 부탁드립니다....
좋은하루되세요~
어... 지금 적어주신 저 스크립트를 마우스로 그대로
어... 지금 적어주신 저 스크립트를 마우스로 그대로 긁어서 해봤는데도 저는 아주 잘 동작하네요... =ㅅ=;;;
(단 키보드로 입력한 스트링에 따옴표가 포함되면 그게 엉키면서 문제가 되는군요)
영문은 모르겠고, 그냥 머리에 떠오르는 것들만 적어보면
syntax error 가 나는 걸로 봐서 (그리고 스크립트 행번호가 14까지 진행되어 있는 걸로 봐서)
스크립트의 다른 부분에 잘못된 게 있거나... (bash는 띄어쓰기 이런 데에도 민감한 곳이 있으니까요)
아니면 bash가 아니라 오리지널 sh를 띄우고 있거나 (제 환경에서는 sh는 bash의 심볼릭링크라서, 제가 테스트해볼 수 없네요)
스크립트에 눈에 안 보이는 특수문자(윈도우 개행 문자에 포함되는 \r 같은?)가 들어 있어서 영향을 끼치고 있거나...
뭐 이 정도네요.
뭐가 문제였는지 저도 궁금하니 해결되시면 적어주시면 감사하겠습니다 ^^;
좋은 하루 되세요!
왠진 모르겠는데.....
그대로 복사해서 새 파일에 만들어서 적용시키니 되더군요 =ㅅ=;;;;
그래서 그걸 다시 그부분만 그대로 원 파일에 붙여넣었더니 되었습니다.;;;;;;;;;;; ㅡㅅㅡ;;
의심해볼만한건 띄어쓰기나 "였는데..... 어찌 해결된건지 잘 모르겠네요 ㅜㅜ
계속 답변 주셔서 감사합니다 ^ㅡ^
좋은 하루 되세요!!!
댓글 달기