it-swarm-vi.tech

Điều gì gây ra tất cả các dòng "khai báo -x" này khi tôi mở một thiết bị đầu cuối?

Khi tôi mở một thiết bị đầu cuối trên máy Fedora của mình (hoặc ssh vào nó), tôi nhận được một loạt các dòng như thế này trước Lời nhắc:

declare -x CVS_RSH="ssh"
declare -x DISPLAY="localhost:10.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
…

Điều gì gây ra điều này? Điều này có thể xảy ra sau khi tôi chỉnh sửa .bashrc, nhưng tôi tin rằng tất cả những gì tôi đã thay đổi là thêm một đường dẫn thư mục khác vào "PATH =".

Cập nhật (trả lời heavyyd 's answer): Tôi grep'ed ~/.bashrc, ~/.bash_profile/etc/bashrc cho "khai báo" và tìm thấy không có gì.

Tôi đã xem /etc/bashrc~/.bashrc chứa thông tin sau:

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

Tôi không thấy bất cứ điều gì trong các tập lệnh ~/.bashrc hoặc ~/.bash_profile ngoại trừ đoạn mã trên, "PATH =,", "xuất xuất" và "bí danh".

Khi tôi chạy tập lệnh .bashrc của tôi (sử dụng tập lệnh "bash ~/.bashrc") hoặc .bash_profile, tôi thấy danh sách "khai báo", nhưng không có thông báo lỗi. (Tôi không thấy gì nếu tôi chạy /etc/bashrc.)

~./bash_profile rất đơn giản:

# .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

Đã giải quyết : Cảm ơn andrew.n , đề xuất của bạn đã giúp tôi theo dõi nó. Hóa ra tất cả các dòng "khai báo -x" đều xuất ra nếu một dòng chạy export (và chính nó), và tôi đã vô tình chèn CR vào giữa "export" và "PATH = bit" trong .bashrc của tôi.

15
Daryl Spitzer

Chạy

env - HOME="$HOME" /bin/bash --login -xv 2>&1 | tee foo

để khởi động bash trong chế độ dài dòng. Thao tác này sẽ in mọi dòng tệp khởi tạo khi được đọc và mọi dòng tệp khởi tạo khi được thực thi, sao chép đầu ra vào tệp có tên foo. Sau đó, bạn có thể tìm trong foo để xem những gì mà gây ra declare -x được gọi.

8
andrew.n

Chỉ ra rằng rất nhiều câu lệnh declare ... là kết quả của việc có export được chạy ở đâu đó mà không có đối số.

Tôi đã tìm thấy một dòng mới vô tình trong .bashrc của tôi:

export
VARIABLE=value

Mà nên có

export VARIABLE=value
6
jgeewax

Có, có khả năng nó đến từ .bashrc của bạn vì bạn đã chỉnh sửa nó. Bạn có thể đã đưa ra một lỗi cú pháp trong tập lệnh có thể gây ra lỗi đó.

Bạn có thể đảm bảo rằng những dòng này tồn tại trong .bashrc của bạn bằng cách nhập:

grep declare ~/.bashrc

Bạn sẽ thấy ít nhất 4 dòng đó được in ra bàn điều khiển. Bạn cũng có thể thử chạy tập lệnh .bashrc của mình từ Lời nhắc và xem có lỗi nào xảy ra không:

bash ~/.bashrc
3
heavyd