Tôi đang cố gắng sử dụng chuỗi con bash tích hợp để thay thế đầu ra của một chuỗi con hoặc một hàm bash khác.
Các lệnh sau hoạt động khá tốt trong zsh; nhưng kết quả là một bad substitution
lỗi trong bash:
${${PWD##*/}//trunk/latest}
hoặc là
${$(basename $PWD)//trunk/latest}
đầu ra phải là thư mục cuối cùng của $PWD
, được thay thế bằng latest
khi thư mục hiện tại của tôi làtrunk
vì vậy /home/user/trunk
nên trở thànhlatest
Có một bash tương đương cho phép chuỗi phiên bản chuỗi mà không cần dựa vào các biến hoặc đường ống? Hoặc bash dựng sẵn chỉ cho phép đầu vào là một chuỗi hoặc một biến đơn giản?
sed
trong vài bước. Nhưng tôi không hiểu tại sao bash từ chối thực hiện subshell, sau đó thay thế nội dung của nó như bất kỳ chuỗi nào khác