cuốn sách gpt4 ai đã làm

linux - cú pháp trích dẫn kép/dấu ngoặc đơn

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 01:17:03 26 4
mua khóa gpt4 Nike

Khi truy vấn danh sách và đặt giá trị vào một biến và cố gắng sử dụng biến đó trong tập lệnh khác, nó sẽ có định dạng mong muốn.

  • Kịch bản 1:
    cilist=$(opr-ci-list.sh -view_name TN_UD_REFRESH_MRE | sed -e '/^[TL-]/d' -e '/^\s*$/d' -e 's/^.... //' | awk -vORS=, '{ print $1 }' | sed 's/,$/\n/')

Đầu ra của tập lệnh này sẽ là một chuỗi ID được phân tách bằng dấu phẩy, chẳng hạn như: 7c553435c1376c8f5f020fcee0b8ef51,7d427dd75235bf513286d3210e1bd787

echo$cilist7c553435c1376c8f5f020fcee0b8ef51,7d427dd75235bf513286d3210e1bd787

=> Không thấy dấu ngoặc kép khi vang vọng

  • Kịch bản 2:
    opr-downtime.sh -cis "\"$cilist\""

Tôi gặp lỗi vì biến được trích dẫn một lần:

-cis '"7c553435c1376c8f5f020fcee0b8ef51,7d427dd75235bf513286d3210e1bd787"'

Tôi đã thử một số cách cú pháp nhưng tập lệnh thứ hai luôn nhập sai. Hoặc có thể tôi không có thứ gì giống như vậy trước mặt hoặc sau lưng tôi '" Trích dẫn hoặc dấu ngoặc kép như thế này.

Bất kỳ trợ giúp hoặc phản hồi nào về ngữ pháp chính xác sẽ được đánh giá cao.

câu trả lời hay nhất

Shell coi ký tự trích dẫn là một ký tự đặc biệt. Đối với dấu ngoặc kép ("), xử lý dữ liệu được chứa dưới dạng một đối số duy nhất cho lệnh. Điều này hữu ích nếu có khoảng trắng (hoặc các dấu phân cách shell khác) trong đầu vào. Tuy nhiên, khi các đối số được cung cấp cho lệnh, dấu ngoặc kép sẽ bị xóa.

Bạn có thể thử sử dụng dấu gạch chéo ngược (\) để thoát khỏi dấu ngoặc kép. Tuy nhiên, bạn vẫn có thể muốn gói mọi thứ trong dấu ngoặc kép trong trường hợp $cilist Có những đầu vào yêu cầu báo giá.

script.sh -cis "\"$cilist\""

Về linux - cú pháp trích dẫn kép/trích dẫn đơn, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/49679578/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress