Ketika saya membuka terminal di mesin Fedora saya (atau ssh ke dalamnya), saya mendapatkan banyak baris seperti ini sebelum prompt:
declare -x CVS_RSH="ssh"
declare -x DISPLAY="localhost:10.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
…
Apa yang menyebabkan ini? Ini mungkin terjadi setelah saya mengedit saya .bashrc
, tapi saya percaya semua yang saya ubah adalah menambahkan path direktori lain ke "PATH =".
Update (menanggapi heavyd jawaban 's): Saya grep'ed ~/.bashrc
, ~/.bash_profile
dan /etc/bashrc
untuk "declare" dan menemukan apa-apa.
Saya melihat /etc/bashrc
karena ~/.bashrc
berisi yang berikut:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Saya tidak melihat apa pun di skrip ~/.bashrc
atau ~/.bash_profile
kecuali kode di atas, "PATH = ...", "ekspor ..." dan "alias ...".
Ketika saya menjalankan .bashrc
skrip saya (menggunakan " bash ~/.bashrc
") atau .bash_profile
skrip saya melihat daftar "menyatakan", tetapi tidak ada pesan kesalahan. (Saya tidak melihat apa pun jika saya lari /etc/bashrc
.)
~./bash_profile
sangat sederhana:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
Diselesaikan : Terima kasih andrew.n , saran Anda membantu saya melacaknya. Ternyata semua baris "mendeklarasikan -x ..." adalah keluaran jika seseorang berjalan export
(dengan sendirinya), dan saya tidak sengaja memasukkan CR di antara "ekspor" dan "PATH = ..." di file saya .bashrc
.
sumber
Jawaban:
Lari
env - HOME="$HOME" /bin/bash --login -xv 2>&1 | tee foo
untuk memulai bash dalam mode verbose. Ini akan mencetak setiap baris file inisialisasi saat dibaca, dan setiap baris file inisialisasi saat dijalankan, menyalin output ke file yang disebut
foo
. Kemudian Anda dapat melihatfoo
untuk melihat apa yang menyebabkandeclare -x
dipanggil.sumber
Mengetahui bahwa banyak
declare ...
pernyataan adalah hasil dariexport
dijalankan di suatu tempat tanpa argumen.Saya menemukan baris baru yang tidak disengaja di
.bashrc
:Yang seharusnya
sumber
Ya, kemungkinan itu berasal dari .bashrc Anda karena Anda mengeditnya. Anda mungkin telah memperkenalkan kesalahan sintaksis dalam skrip yang dapat menyebabkan itu menjadi output.
Anda dapat memastikan bahwa baris-baris ini ada di .bashrc Anda dengan mengetik:
Anda harus melihat setidaknya 4 baris yang dicetak ke konsol. Anda juga dapat mencoba menjalankan skrip .bashrc Anda dari prompt dan melihat apakah ada kesalahan yang dihasilkan:
sumber