COMM 및 SORT를 사용하는 Bash 스크립트가 예기치 않은 토큰 근처에서 구문 오류를 발생시킵니다.

서지

Linux, CentOS-두 파일을 비교하려면 명령을 사용합니다.

comm --check-order -1 --output-delimiter=----- <sort(file1.txt) <sort (file3.txt) > result.txt ;

그리고 그것은 쉘에서 작동하지만 bash 파일을 만들려고 할 때-나는

syntax error near unexpected token `('

스크립트는 가장 간단합니다.

#!/bin/bash
cd /var/www/html/compare/ ;
comm --check-order -1 --output-delimiter=----- <sort(file1.txt) <sort (file3.txt) > result.txt ;
exit ;
    sh

나는 이미 둥근 괄호를 이스케이프하여 변형을 시도했습니다.

sort\(file1.txt\)

또는

sort'(file1.txt)'

하지만이 케이스 쉘은

sort(file1.txt)...: No such file or directory

나는 절대 경로로 시도했다.

<sort\(var/www/html/compare/file1.txt\)

동일한 결과 "해당 파일 없음"

이미 다음과 같은 변형으로 스크립트를 실행 해 보았습니다.

sh /a/compare.sh
bash /a/compare.sh
chmod +x /a/compare.sh; ./a/compare.sh

여전히 같은 문제입니다.

그래서 대괄호를 이스케이프 처리 한 "No such file ..."또는 다른 경우 "예기치 않은 토큰"이 있습니다.

시도해 볼 아이디어에 미리 감사드립니다. 구문의 올바른 "혼합"이 될 수 있습니까?

서지

많은 조합 후에 나는 약간의 특정 이스케이프를 사용하여 BASH를 강제해야하는 솔루션을 찾았습니다. 이 스크립트는 작동합니다.

#!/bin/bash
cd /var/www/html/compare/ ;
`bash -c "comm --check-order -1 --output-delimiter=----- <(sort file1.txt) <(sort file2.txt) > result.txt" ` ;
exit ;
    sh

누군가가 시간을 절약하는 데 도움이되기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관