2013-07-12 5 views
1

내 .bashrc에이 라인을 포함한 후 파일 오류의 예기치 않은 끝을 얻고 것은 XCLIP하는 에코에서 원하는 출구 예기치 않은 EOF

alias domsrv01='echo -e ?HT_R8\'% | xclip ; ssh 10.50.0.35' 

입니다

:

HT_R8 '%는

당신이 생각다시피

, 그것은 암호이고 그래서 변경할 수 없습니다 :

EOF 오류를 수정하기 위해 암호 내부에서 작은 따옴표 문자를 이스케이프 처리하려면 어떻게해야합니까?

작은 따옴표 만이 유일한 문제인지 확실하지 않습니다. "?" 및 "%"는 재미있는 방식으로 해석됩니까?

+1

이 경우 어떨까요? 'alias domsrv01 = "echo -e \"? HT_R8 \ '% \ "| xclip; ssh 10.50.0.35"' – fedorqui

+0

방금 ​​* password *를 게시 했습니까? – devnull

+1

@devnull 물론 정확한 비밀번호는 아니지만 원본과 동일한 특수 문자가 포함되어 있습니다. – sergei

답변

1

bash에서 작은 따옴표로 묶은 따옴표를 직접 이스케이프 할 수 없습니다. 그러나 bash는 인접한 문자열을 연결하기 때문에 'text'"'"'moretest' 대신이 구조를 사용할 수 있습니다. 작은 따옴표로 작은 따옴표로 묶은 문자열을 끝내고, 따옴표로 묶은 작은 따옴표를 즉시 추가 한 다음 문자열의 나머지 부분을 따옴표로 묶어서 추가하십시오. 특정 예에서, 명령은 다음과 같습니다

alias domsrv01='echo -e ?HT_R8\'"'"'% | xclip ; ssh 10.50.0.35' 
주제에

더 많은 논의가 원천 여기에있을 수 있습니다 How to escape single-quotes within single-quoted strings?

편집 :

+0

또는' 'text'\ " 'moretest'' (매개 변수 출력이없는'alias' 명령과 동일합니다.) – anishsane

+1

어떤 이유로 이것은 여전히 ​​실패합니다. 이것을 시도하십시오 : alias test1 = 'echo -e? HT_R8' " '"'% | xclip | xclip -o '. echo 출력을 xclip으로 반환해야하지만 그렇지 않습니다. – sergei

+0

@sergei 맞습니다. 해결 방법은'test2() {echo -e '? HT_R8' '' ''% '|'와 같은 함수를 사용하는 것일 수 있습니다. xclip | xclip -o; }'. – user000001

1

별칭이 @GordonDavisson에 의해 발견 누락 반발을 추가 짧은 텍스트 대체를위한 것이지 완전한 쉘 명령이 아닙니다. 함수 사용 :

domsrv01() { 
    echo -e ?HT_R8\'% | xclip ; ssh 10.50.0.35 
} 
+0

이 별명 파일은 100 개 이상의 서버에 대한 연결 관리자에 대한 게으른 대체품으로 시작되었습니다. 언젠가는 미래의 기능으로 옮겨야 할 수도 있습니다. – sergei

관련 문제