Điểm:3

Làm cách nào tôi có thể xem thiết bị xuất chuẩn/thiết bị xuất chuẩn từ vỏ đăng nhập bash?

lá cờ cn

Tôi đang cố gỡ lỗi một vấn đề lạ với ~/.bash_profilevà tôi muốn có thể xem liệu có bất kỳ lỗi / etc nào được in khi nó chạy hay không. Có một số nhật ký hoặc một nơi nào đó có chứa thiết bị xuất chuẩn và/hoặc thiết bị xuất chuẩn của quy trình Shell đăng nhập không? Cảm ơn!

muru avatar
lá cờ us
Nếu có, thông thường chúng sẽ được in trong thiết bị đầu cuối mà bạn đã chạy trình bao đó.
stumblebee avatar
lá cờ mx
@muru Tôi cũng nghĩ như vậy, tôi đã tạo lỗi trong `~/.profile` mà không có sự tồn tại của `~/.bash_profile` , thông báo lỗi không được chuyển qua. Kiểm tra câu trả lời chưa xóa của tôi.
muru avatar
lá cờ us
@stumblebee các tab thiết bị đầu cuối mới sẽ không chạy shell đăng nhập trừ khi bạn định cấu hình trình giả lập thiết bị đầu cuối của mình theo cách đó
stumblebee avatar
lá cờ mx
@muru Bạn hoàn toàn chính xác thưa ngài! ~./.bashrc thì có nhưng ~/.profile thì không. Lẽ ra tôi nên chạy `sudo login`. Tôi sẽ giảm xuống câu trả lời ban đầu của mình và chịu đựng sự xấu hổ.
vanadium avatar
lá cờ cn
Bạn có thể lấy nguồn tệp trong thiết bị đầu cuối hiện tại của mình: `source .bash_profile`
sancho.s ReinstateMonicaCellio avatar
lá cờ pl
Chào. Bạn có bất kỳ thông tin phản hồi về những gì đã được đề xuất? Đó là điều cần thiết cho cộng đồng.
Điểm:0
lá cờ mx

tiêu chuẩntiêu chuẩn sẽ xuất hiện trong thiết bị đầu cuối mỗi khi bạn đăng nhập.Bạn phải đăng xuất và đăng nhập lại để những thay đổi trong hồ sơ của bạn có hiệu lực. Giải thích thêm về việc sử dụng ~/.bash_profile được cung cấp đây trên Hỏi Ubuntu với một câu trả lời tốt

Điểm:0
lá cờ cn

Tbh Tôi đã không thử bản thân mình, nhưng tôi khá chắc chắn rằng đầu ra tiêu chuẩn và lỗi là thiết bị đầu cuối mà nó đang chạy, ngay khi quá trình bắt đầu. Bạn có thể kiểm tra bằng cách đặt một lệnh như tiếng vang "Xin chào thế giới" trong bạn .bash_profile...

Điểm:0
lá cờ pl

Để gỡ lỗi tập lệnh bash, bạn có một số tùy chọn và một số trong số này thậm chí còn hiệu quả hơn chuyển hướng thiết bị xuất chuẩn/thiết bị xuất chuẩn.

Hoạt động dấu vết

Bạn có thể thêm vào của bạn ~/.bash_profile (chỉ tạo dấu vết cho các phần cụ thể trong tập lệnh của bạn) với

set -x # kích hoạt gỡ lỗi từ đây
<lệnh>
đặt +x # ngừng gỡ lỗi từ đây

Cũng thế, đặt -v in các dòng đầu vào shell khi chúng được đọc và đặt +v vô hiệu hóa điều này. Chỉ với điều này, bạn có thể sẽ nắm bắt được vấn đề.

chuyển hướng dấu vết

Sử dụng Biến Bash BASH_XTRACEFD

Nếu được đặt thành một số nguyên tương ứng với bộ mô tả tệp hợp lệ, Bash sẽ ghi đầu ra theo dõi được tạo khi âset -xâ được bật cho bộ mô tả tệp đó. Điều này cho phép đầu ra theo dõi được tách biệt khỏi các thông báo lỗi và chẩn đoán. Bộ mô tả tệp bị đóng khi BASH_XTRACEFD không được đặt hoặc được gán một giá trị mới. Việc bỏ đặt BASH_XTRACEFD hoặc gán chuỗi trống cho nó sẽ khiến đầu ra dấu vết được gửi tới lỗi tiêu chuẩn. Lưu ý rằng việc đặt BASH_XTRACEFD thành 2 (bộ mô tả tệp lỗi tiêu chuẩn) và sau đó bỏ đặt nó sẽ dẫn đến lỗi tiêu chuẩn bị đóng.

Vì vậy, bạn sẽ sử dụng

exec 5> ~/bash_profile_ouput.txt
BASH_XTRACEFD="5"
<lệnh>
bỏ đặt BASH_XTRACEFD

In số dòng

Sử dụng Biến Bash DÒNG KHÔNG (và BASH_LINEKHÔNG, BASH_SOURCE và/hoặc TÊN CHỨC NĂNG trong các trường hợp phức tạp hơn)

echo "Đang thực thi ${LINENO}"
<lệnh>

Chuyển hướng stdout/stderr

Phối hợp chỉ huy giám đốc điều hành với chuyển hướng, và có thể phát bóng. Xem câu trả lời đây, cũng bao gồm các phương pháp/"thủ thuật" khác ngoài việc sử dụng giám đốc điều hành.

Có liên quan:

  1. https://stackoverflow.com/questions/44249890/pipe-bash-stdout-only-in-debug-mode
  2. https://unix.stackexchange.com/questions/334382/find-out-what-scripts-are- being-run-by-bash-on-startup
  3. https://unix.stackexchange.com/questions/155551/how-to-debug-a-bash-script

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.