ฉันต้องมีรหัสเพิ่มอาร์กิวเมนต์เช่น Brad_1 และทำให้เป็น Brad_2 ฉันไม่แน่ใจว่าจะทำเช่นนั้นเพราะอย่างใดอย่างหนึ่งเป็นจำนวนและอื่น ๆ ที่เป็นชื่อ
ฉันต้องมีรหัสเพิ่มอาร์กิวเมนต์เช่น Brad_1 และทำให้เป็น Brad_2 ฉันไม่แน่ใจว่าจะทำเช่นนั้นเพราะอย่างใดอย่างหนึ่งเป็นจำนวนและอื่น ๆ ที่เป็นชื่อ
คำตอบ:
ฟังก์ชันนี้ยอมรับหนึ่งพารามิเตอร์ มันแยกสตริงและจำนวนออกจากกันโดยใช้เครื่องหมายขีดล่างจากนั้นพิมพ์สตริงกลับพร้อมจำนวนที่เพิ่มขึ้น:
function increment() {
local num=${1#*_};
local str=${1%_*};
printf "%s" "${str}_$((num+1))";
}
$ echo $(increment Brad_1)
Brad_2
$ echo $(increment Jeff_41)
Jeff_42