다음 명령을 수동으로 실행하면 정상적으로 작동합니다.
/jrr/bin/java -Xms14M -Xm14M -Dhttps.protocols=Tv1.2 -Dk.ts.client.protocols=TLSv.2 -jar /gq1/ust/classes/S.jar $(< /pass.txt)
그러나 쉘이 실패하고 "(< /pass.txt)"를 읽을 수 없습니다. 해당 변수가 없습니다.
!/usr/bin/기대
SSH 생성[이메일 보호됨]"/jrr/bin/java -Xms14M -Xm14M -Dhttps.protocols=Tv1.2 -Dk.ts.client.protocols=TLSv.2 -jar /gq1/ust/classes/S.jar $(< /pass.txt );cd /gucq1/gcust;mail -s '안녕하세요'[이메일 보호됨]<logs.txt"는 "password"가 "N0\r" 상호 작용을 보낼 것으로 예상하고 eof를 예상합니다.
답변1
노력하다
command $(< abc.txt)
어디
$(< )
구문은 파일을 읽고 줄 끝을 제거하고 명령줄에서 바꿉니다.
자세한 내용은 Bash 매뉴얼 장을 참조하세요.명령 대체:
Bash는 다음을 실행하여 확장을 수행합니다.주문하다명령 대체를 명령의 표준 출력으로 바꾸고 후행 줄 바꿈을 제거합니다. 포함된 개행 문자는 제거되지 않지만 단어 분리 중에 제거될 수 있습니다. 명령 대체를 사용하면 명령을 동일하지만 더 빠른 명령으로 바꿀 수 있습니다.
$(cat file)
$(< file)