2013-07-06 34 views
6

Tôi thừa kế tập lệnh shell trên 700 dòng và nhận thấy rằng khi tôi chạy tập lệnh, nó sẽ phát ra lỗi tại một số điểm thực thi.Gỡ lỗi tập lệnh shell với số dòng

Ví dụ lỗi mà tôi nhìn thấy trên giao diện điều khiển là một cái gì đó giống như

cat: /Wreck/wreck_module.rb: No such file or directory 

Tôi đã cố gắng sử dụng set -x và hầu hết các lời khuyên từ link này, tuy nhiên tôi nhận thấy rằng tất cả các đầu ra mà tôi đã nhận được khá ồn ào.

Có cách nào để có được số dòng chính xác nơi mà lệnh trình bao trả về trạng thái khác không?

+0

Bạn đang sử dụng chính xác trình bao nào? –

+0

Tôi đang sử dụng bash shell – tawheed

+0

Sử dụng 'bash -vx' để thực thi tập lệnh shell –

Trả lời

4

Đặt này ở phía trên cùng của kịch bản bạn muốn debug:

#!/bin/bash 
function trace_line(){ 
    caller 
} 
trap trace_line debug 

và có lẽ chuyển hướng đầu ra vào một tập tin để phân tích dễ dàng.

+0

Điều này làm gì? "Người gọi" có phải là tính năng tích hợp trong trình bao không? Chỉnh sửa: [có, nó là.] (Http://unix.stackexchange.com/q/19323) –

Các vấn đề liên quan