Tôi đang chạy kịch bản thử nghiệm nhỏ này tôi đã viết:
#!/bin/bash
TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest
từ dòng lệnh:
./test.sh "1092$212"
nhưng ký hiệu đô la đang bị tước bỏ. Nếu tôi thoát khỏi nó, nó hoạt động. Nhưng tôi nghĩ rằng dấu ngoặc kép sẽ bảo vệ tôi khỏi cần phải làm điều này. Ai đó có thể vui lòng giúp tôi hiểu những gì đang xảy ra và làm thế nào để khắc phục điều này?
Vấn đề là nó mơ hồ - ngay cả đối với tôi là một con người - những gì bạn muốn ở đây, vì vậy máy tính không có cơ hội. Có lẽ người phiên dịch bash đang cố gắng để có được $ 212. Bash âm thầm thất bại nếu bạn cố gắng mở rộng một biến không tồn tại, do đó $ bị loại bỏ. Xem xét gói các biến của bạn trong ngoặc, ví dụ: "1092 $ {2} 12"
—
Brian Peterson