Apa yang menyebabkan semua baris “declare -x…” ini ketika saya membuka terminal?

15

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_profiledan /etc/bashrcuntuk "declare" dan menemukan apa-apa.

Saya melihat /etc/bashrckarena ~/.bashrcberisi yang berikut:

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

Saya tidak melihat apa pun di skrip ~/.bashrcatau ~/.bash_profilekecuali kode di atas, "PATH = ...", "ekspor ..." dan "alias ...".

Ketika saya menjalankan .bashrcskrip saya (menggunakan " bash ~/.bashrc") atau .bash_profileskrip 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.

Daryl Spitzer
sumber
lihat di /etc/profile.d/
freiheit
Apa yang harus saya cari di /etc/profile.d/? Apa semua file itu? (Mungkin saya harus membuat pertanyaan baru tentang hal itu.)
Daryl Spitzer
Terima kasih. Dalam kasus saya itu adalah CR antara ekspor dan PATH juga :)
marlar

Jawaban:

8

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 melihat foountuk melihat apa yang menyebabkan declare -xdipanggil.

andrew.n
sumber
6

Mengetahui bahwa banyak declare ...pernyataan adalah hasil dari exportdijalankan di suatu tempat tanpa argumen.

Saya menemukan baris baru yang tidak disengaja di .bashrc:

export
VARIABLE=value

Yang seharusnya

export VARIABLE=value
jgeewax
sumber
Iya. Ini jawaban yang benar. Jika Anda mengetikkan "ekspor" dengan sendirinya di terminal Anda, Anda akan melihat keluaran menyatakan -x yang sama ditampilkan.
Sterling Bourne
Ya, ini berlaku untuk saya! Saya tidak sengaja memasukkan konten ekspor ke baris baru berikutnya. Saya menempatkan mereka di baris yang sama dan berhasil.
fanchyna
3

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:

grep declare ~/.bashrc

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:

bash ~/.bashrc
astaga
sumber