이는 rpm 패키지에 대한 스크립트를 볼 때 접한 것처럼 약간 구체적일 수 있습니다. 초기 패키지는 다음과 같습니다.
rpm --import - << EOF
GPG
KEY
HERE
EOF
다음 오류로 인해 이 작업이 실패했습니다. -: 읽기 가져오기에 실패했습니다(0).
패키지가 수정되어 이제 다음 문제 없이 설치됩니다.
echo "GPG
KEY
HERE" >> rpm --import -
첫 번째는 실패하고 두 번째는 실패하는 이유를 이해할 수 없습니다. 또한, 가질 수 있습니까?
echo "GPG
KEY
HERE" | rpm --import -
옵션으로?
미리 감사드립니다!
답변1
첫 번째 예에서는 인스턴스 사이의 텍스트를 변수 보간법을 사용하여 큰따옴표로 묶은 문자열로 처리합니다 (즉, EOF
역따옴표와 확장자로 시작하거나 그 안에 있는 모든 변수, 명령 및 표현식을$
평가합니다). 이것은 다음과 같다표준 입력rpm
명령 에 .
두 번째 인스턴스는 다음 세 줄을 추가합니다(변수 보간도 사용).
GPG
KEY
HERE --import -
rpm
현재 디렉터리의 파일로 이동합니다. 특별한 관심이 지불됩니다rpm
명령을 실행하지 않습니다.
세 번째 옵션은 세 줄을 작성합니다(역시 변수 보간법 사용).
GPG
KEY
HERE
~처럼표준 입력명령을 위해rpm --import -
모든 경우에 문자열 주위에 큰따옴표 대신 작은따옴표를 사용하거나 큰따옴표(첫 번째 경우 사용 <<'EOF'
)를 사용하지 않으면 변수의 확장 및 보간을 방지할 수 있습니다.
또한 읽기를 위한 마커로 사용 rpm
되지 않는 것 같습니다.-
표준 입력, 따라서 어떤 옵션도 원하는 것을 얻을 수 없습니다. GPG 키를 파일에 쓰거나 <( echo... )
대신 이 구성을 사용해야 합니다 -
.