Nếu tôi chạybash: debug tùy chọn và chức năng
bash -x myscript.sh
tôi sẽ nhận được kết quả sử lỗi.
Nhưng nếu tôi có hàm trong myscript.sh
, mã trong hàm sẽ miễn nhiễm với tùy chọn -x. Nó ghi để chỉ xuất ra tên của hàm.
Cách lấy đầu ra gỡ lỗi cho các hàm trong tập lệnh bash?
Cập nhật:
Sau phản ứng của ztank1013, tôi chỉ nhận ra rằng tôi đã sử dụng ksh, không bash. Dường như bash có mặc định tùy chọn functrace được kích hoạt trong hệ thống của tôi (nhờ bash-o-logist)
Tôi hài lòng, nhưng đối với cộng đồng, tôi duy trì câu hỏi mở cho ksh.
Đối với kịch bản:
#!/bin/ksh
a=2
testering(){
a=3
if [ $a -eq 3 ]; then
echo lili
fi
}
if [ $a -eq 2 ]; then
echo mimi
fi
testering
exit
sản lượng ksh -x ./testdebug.sh
là:
+ a=2
+ [ 2 -eq 2 ]
+ echo mimi
mimi
+ testering
lili
+ exit
Vì vậy, ví ksh, lừa là gì?
(Nếu không có câu trả lời sẽ đến, các 'đúng' sẽ đi đến bash-o-logist.)
câu hỏi hay, +1 – nsd