2014-06-17 4 views
1

스크립트 GPG에서 작업 중이며 암호화 명령에 암호를 쓰고 싶습니다. 암호는 동일한 디렉토리의 텍스트 파일 (passphrase.txt)에 기록됩니다. 그래서 내 목표는 passphrase.txt의 내용을 mypassphrase 대신 script.sh에 쓰는 것입니다. grep 명령을 살펴본 결과 awk를 sed했지만 사용할 때 어려움이 발생했습니다. 어떠한 제안 ?gpg 스크립트에 다른 텍스트 파일에있는 암호를 작성하십시오.

명령 암호화 :

gpg --passphrase mypassphrase --local-user $1 --recipient $2 --armor --sign --output $3.asc --encrypt $3 

답변

1

당신은 사용할 수 있습니다

gpg --passphrase $(tr -d $'\n' < passphrase.txt) --local-user "$1" --recipient "$2" --armor --sign --output "$3.asc" --encrypt "$3" 

설명 :

bash는 알고

명령의 출력을 반환합니다 command substitution$() :

output=$(command) 

명령 tr -d $'\n' passphrase.txt은 mypassphrase.txt의 내용을 출력하지만 추가 행이 있으면 제거합니다 (있는 경우).

암호 파일에 추가 신규 라인이 없음을 확인 할 수있는 경우, 다음, 빠른 명령을 사용할 수 있습니다

gpg --passphrase $(< mypassphrase.txt) --local-user "$1" --recipient "$2" --armor --sign --output "$3.asc" --encrypt "$3" 
+0

들으을! 이것은 잘 작동합니다. .bat 스크립트보다 더 효율적입니다 :) – user3748320

+0

그것이 도움이 되었기 때문에 기쁩니다! – hek2mgl