Izin Bash menolak kesalahan saat mencoba mencari ~ ~ .bash_profile

1

Saya tidak tahu mengapa saya mendapatkan kesalahan ini

-bash: /dev/ttys000: Permission denied

ketika saya mencoba untuk sumber saya ~/.bash_profile? Tidak ada yang berubah dalam pengaturan saya (OS X 10.10.1), kecuali instalasi Csound baru-baru ini.

ramius
sumber
Mungkin bisa bermanfaat untuk mengetahui apa yang ada di dalam diri Anda ~/.bash_profile... Di sini di luar ada lebih banyak pengguna Linux daripada Osx daripada yang dapat Anda bayangkan ... :-)
Hastur

Jawaban:

1

Hanya tembakan dalam kegelapan: ada skrip atau perintah di Anda ~/.bash_profileyang mencoba untuk menulis /dev/ttys000yang ditutup untuk menulis untuk proses / pengguna.

Jika Anda ingin mengidentifikasi di mana kesalahan itu terjadi, coba aktifkan debugging shell saat ini:

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

Jika Anda menemukan siapa / mengapa dan Anda tidak dapat menyelesaikan masalah, kirimkan pertanyaan lain tentang itu.


Contoh:
Dalam file aaa.shada:

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

Output dari set -x; source aaa.sh; set +xadalah:

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

Kesalahan dihasilkan dari baris sebelum ( ++ ls --color /ahksfjkasd)

Cepat
sumber
Hai, terima kasih saya telah mengidentifikasi baris dalam ~/.bash_profilemenyebabkan masalah - itu export GPG_TTY="$(`tty`)", di mana GPG_TTYvariabel lingkungan diperlukan untuk program pinentry kutukan yang digunakan oleh GnuPG - gnupg.org/documentation/manuals/gnupg/Common-Problems.html . Saya tidak mengerti rekomendasi mereka, mereka ingin nilai `tty`ditugaskan GPG_TTY, tetapi ini tidak berhasil. Menghapus backticks memberi nilai yang benar ttyuntuk GPG_TTY.
ramius
Keluarkan ekstra `dari ekspresimu. (sangat terlambat ;) ). Menggunakan a = `mycommand`atau a = $(mycommand)menghasilkan efek yang sama (jalankan perintah mycommanddan simpan hasilnya dalam variabel a). Mungkin salah cetak.
Hastur
Saya lakukan, saat ini GPG_TTY="$(tty)".
ramius