Vui lòng xem xét kịch bản đơn giản có tên thử nghiệm này :
#!/bin/bash
echo $1
và các lệnh và lệnh sau:
$ echo "A B"
A B
$ echo ""A B""
A B
$ echo """A B"""
A B
$ echo """A B"""
A B
$ ./test "A B"
A B
$ ./test ""A B""
A
$ ./test """A B"""
A B
$ ./test """"A B""""
A
Ai đó có thể vui lòng giải thích lý do tại sao lệnh gọi kiểm tra không hoạt động như tiếng vang của lệnh hoặc trỏ đến tài liệu liên quan không?
2
Đã có một lệnh kiểm tra , bạn thật may mắn khi bạn đang sử dụng đường dẫn đầy đủ, nếu không bạn sẽ gặp khó khăn trong việc gỡ lỗi tình huống.
—
Rui F Ribeiro
Tốt hơn cho loại thử nghiệm này là sử dụng
—
Charles Duffy
printf '%q\n' "$@"
thay vì hoàn echo
toàn, nó sẽ phát ra các đối số của bạn một dòng với các ký tự ẩn và khoảng trắng được thoát trong một hình thức có thể nhìn thấy.