3

このスクリプトは、グラフィカルに起動した場合(スクリプトアイコンをダブルクリックして実行を選択した場合)は正しく機能しませんが、ターミナルから呼び出された場合は正常に実行されます。ファイルを保存したり、既存のファイルからコンテンツをロードしたりしません。助けてください!ありがとうございました。

#!/bin/bash

# This script provides a simple and secure messaging system for users not
# familiar with gpg or using the terminal. The idea is to keep sensitive
# plaintext files off one's computer.

zenity --question --text="Select operation:" --ok-label="Compose" --cancel-label="Read"
if [[ $? == 0 ]]; then
    usr=$(zenity --entry --text="Sender Key ID:")
    rec=$(zenity --entry --text="Recipient Key ID:")
    pwd=$(zenity --password)
    outfile=$(zenity --file-selection --save --confirm-overwrite)
    zenity --text-info --editable | gpg -aseu $usr -r $rec --passphrase $pwd --cipher-algo AES256 -o $outfile
else
    infile=$(zenity --file-selection)
    pwd=$(zenity --password)
    gpg -d --passphrase $pwd $infile | zenity --text-info --height=600 --width=800
fi
4

1 に答える 1

1

エラーの原因として考えられるのは、対話型シェルを介して実行する場合 (したがって をソースする場合.bashrc) とダブルクリックする場合 (非対話的であり、ソースを提供しない場合) が異なる環境にあることです。.bashrc

env > from_terminal対を実行してから、または同様のことenv > double_clickを使用して、環境を比較できます。diff

また、(上記を実行した後)スクリプトをソース化from_terminalして、ターミナル環境で動作するかどうかを確認することもできます。コメントの 1 つに記載されているように、set -vxあなたの友達です。

于 2011-06-21T19:35:27.650 に答える