所以我有這樣的bash腳本做加密:猛砸標準輸入 - 我失去了所有的換行符charachters
#!/bin/bash
#encrypt.sh
fn=$1
if [ $# -eq 0 ]
then
echo "Filename required..."
fi
echo "Type text. Hit Ctrl-d when done"
keyvariable=$(cat)
echo -e $keyvariable | gpg --symmetric --cipher-algo AES256 > $fn
而且我有這個腳本做解密:
#!/bin/bash
#decrypt.sh
fn=$1
if [ $# -eq 0 ]
then
echo "Filename required..."
fi
cat $fn | gpg --decrypt
例子:
sh encrypt.sh test
Type text. Hit Ctrl-d when done
hello
how
are
you
?
我輸入密碼並確認。太好了。我現在有一個名爲「test」的加密文件。
但是當我去解密 「測試」,這裏的輸出:
sh decrypt test
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase
-e hello how are you ?
我失去所有的換行符!該怎麼辦?
答案非常簡單,實際上是:
echo -e "$keyvariable" | gpg --symmetric --cipher-algo AES256 > $fn
注意引號$ keyvariable。
就是這樣!
它與引號完美結合!非常感謝! – Eamorr 2014-10-04 14:28:24
@Eamorr:它很棒與引號,但真正chepner的解決方案的最後一部分是最好的一個,你可以避免存儲輸入,並讓gpg直接採用stdin,考慮使用它。 – 2014-10-05 01:02:08
嘿,該解決方案在命令行工作,但它不會在腳本中提示輸入 – Eamorr 2014-10-05 09:28:50