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

linux - tập lệnh bash: kết hợp var=$(. ..) và var=${var%%...} OK?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 09:27:38 27 4
mua khóa gpt4 Nike

Có thể không và nếu có thì làm cách nào tôi có thể chuyển đổi biểu thức sau thành một dòng?

DEV=$(lsblk -no KNAME,MODEL | grep 'ModelNAME')
DEV=${DEV%%'ModelNAME'}

đơn giản DEV=${(lsblk -no KNAME,MODEL | grep 'ModelNAME')%%'ModelNAME'} không hoạt động

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

zsh cho phép bạn kết hợp mở rộng tham số. Bash thì không.

Đối với bash hoặc POSIX sh (cả hai đều hỗ trợ mở rộng tham số cụ thể này), bạn cần thực thi lệnh này dưới dạng hai lệnh riêng biệt.


Tức là, Có những lựa chọn khác có sẵn. Ví dụ:

# yêu cầu awk in trường đầu tiên và thoát khi khớp
dev=$(lsblk -no KNAME,MODEL | awk '/ModelNAME/ { print $1; exit }')

...hoặc, thậm chí đơn giản hơn (nhưng yêu cầu bash hoặc các dẫn xuất ksh hiện đại khác):

# đọc trường đầu tiên của dòng đầu tiên được trả về bởi grep _ là phần giữ chỗ cho các trường khác;
đọc -r dev _ < <(lsblk -no KNAME,MODEL | grep -e ModelNAME)

Giới thiệu về linux - tập lệnh bash: kết hợp var=$(. ..) và var=${var%%...} OK? , 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/34602438/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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