L'autorizzazione di Bash ha negato l'errore durante il tentativo di generare ~ / .bash_profile


1

Non riesco a capire perché sto ottenendo questo errore

-bash: /dev/ttys000: Permission denied

quando provo a cercare il mio ~/.bash_profile? Nulla è cambiato nel mio setup (OS X 10.10.1), ad eccezione di una recente installazione di Csound.


Forse può essere utile sapere cosa c'è dentro ~/.bash_profile... Qui fuori ci sono più utenti di Linux e non di Osx di quanto tu possa immaginare ... :-)
Hastur

Risposte:


1

Solo uno sparo nel buio: c'è uno script o un comando nel tuo ~/.bash_profile che cercano di scrivere /dev/ttys000 che è chiuso per scrivere per quel processo / utente.

Se vuoi identificare dove viene generato l'errore, prova ad abilitare il debug della shell corrente:

set -x                    # To enable debugging
source ~/.bash_profile    # source the file
set +x                    # To disable debugging

Se trovi chi / perché e non riesci a risolvere il problema, posta un'altra domanda al riguardo.


Esempio:
Nel file aaa.sh c'è:

date +"%H:%M:%S"
ls /ahksfjkasd
echo Hi!

L'output di set -x; source aaa.sh; set +x è:

++ date +%H:%M:%S
17:54:09
++ ls --color=auto /ahksfjkasd
ls: cannot access /ahksfjkasd: No such file or directory
++ echo 'Hi!'
Hi!

L'errore viene generato dalla riga precedente ( ++ ls --color /ahksfjkasd )


Ciao, grazie ho identificato la linea ~/.bash_profile causando i problemi - lo è stato export GPG_TTY="$(`tty`)", dove GPG_TTY è una variabile d'ambiente richiesta per il programma pinentry di curses usato da GnuPG - gnupg.org/documentation/manuals/gnupg/Common-Problems.html . Non capisco la loro raccomandazione, vogliono il valore di `tty` essere assegnato a GPG_TTY, Ma questo non funziona. La rimozione dei backtick fornisce il valore corretto di tty a GPG_TTY.
ramius

Prendi l'extra ` dalla tua espressione (troppo tardi ;) ). Utilizzando a = `mycommand` o a = $(mycommand) produce lo stesso effetto (esegui il comando mycommand e memorizza il suo output nella variabile a ). Probabilmente è un errore di stampa.
Hastur

L'ho fatto, attualmente lo è GPG_TTY="$(tty) ".
ramius
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.