Bash skript nefunguje při spuštění mimo terminálu

hlasů
1

Tento skript nefunguje správně při spuštění graficky (dvojitým kliknutím ikonu skriptu a výběrem běh), ale běží v pohodě, pokud volal z terminálu; nezachrání soubor nebo obsah načíst z existujícího souboru. Prosím pomozte! Děkuji.

#!/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
Položena 21/06/2011 v 19:39
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Pravděpodobnou příčinou chyby je, že máte různá prostředí při provádění prostřednictvím interaktivního shellu (tedy získávání vaší .bashrc) a poklepáním (non-interactive, a nikoli sourcing.bashrc

Můžete porovnat prostředí tím, že dělá env > from_terminalvs. env > double_clicka pak pomocí diffnebo něco podobného.

Dalo by se také (po provedení výše uvedeného postupu) zdroje from_terminalve skriptu aby zjistil, jestli to funguje s terminálovém prostředí. Jak je uvedeno v jednom z komentářů, set -vxje váš přítel.

Odpovězeno 21/06/2011 v 20:35
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more