เป็นไปได้หรือไม่ที่จะรวมฟังก์ชันการจัดการสตริงสองฟังก์ชันขึ้นไปของตัวแปรใน BASH (หรือคำสั่ง Linux มาตรฐานอื่น ๆ )?
สมมติว่า เช่น. ฉันมีตัวแปร $XDG_CURRENT_DESKTOP
ซึ่งเก็บสาย อูบุนตู:GNOME
.
ตอนนี้ฉันสามารถดึงสตริงย่อยที่สองได้โดย ${XDG_CURRENT_DESKTOP##*:}
â จีโนม
.
ฉันยังสามารถดึงสตริงตัวพิมพ์เล็กผ่าน ${XDG_CURRENT_DESKTOP,,}
â อูบุนตู: คำพังเพย
.
แต่ฉันจะรวมทั้งสองฟังก์ชันได้อย่างไร (â คำพังเพย
) ใน หนึ่ง â เรียบง่าย â คำสั่งโดยไม่ต้องใช้การเปลี่ยนเส้นทางไปที่ เสด
, อึดอัด
, เกรป
หรืออื่นๆ เหล่านี้ â มีน้ำหนักค่อนข้างมาก â คำสั่งและไม่มีขั้นตอนการจัดเก็บบัฟเฟอร์เพิ่มเติม? เช่น.:
mybuffer ท้องถิ่น = "${XDG_CURRENT_DESKTOP##*:}"
เสียงสะท้อน "${mybuffer,,}"
ฉันต้องการหลีกเลี่ยง "sub-script" หรือโครงสร้างการเรียกใช้ฟังก์ชันเพื่อให้บรรลุเป้าหมายนี้ และฉันได้ลองใช้ทั้งสองอย่างรวมกันแล้ว แต่ดูเหมือนว่าจะไร้ประโยชน์
มีวิธีอื่น ๆ ?
หรือฉันต้องอัพเกรด bash? (ใช้: GNU ทุบตี 4.3.11)
หรือเปลือกอื่นสามารถทำได้?