Bash tự thực hiện việc tách từ trong chuỗi - thực tế, thường xuyên hơn không, tránh đó là một vấn đề và lý do trích dẫn là rất quan trọng. Thật dễ dàng để tận dụng điều đó trong trường hợp của bạn: chỉ cần đặt chuỗi của bạn vào một mảng mà không trích dẫn nó - bash sẽ sử dụng phân tách từ để tách các thành phần riêng lẻ. Giả sử chuỗi của bạn được lưu trữ trong biến $str
,
ar=($str) # no quotes!
sẽ trả về một mảng gồm 5 phần tử. Chỉ mục mảng của bạn là chỉ mục từ của bạn (đếm từ 0, giống như trong hầu hết các ngôn ngữ lập trình và ngôn ngữ lập trình), tức là Thời đại Thời gian được truy cập bằng cách sử dụng
${ar[1]} # 0 => Name, 1 => Age, 2 => Sex, 3 => ID, 4 => Address
hoặc, nếu bạn cần tìm chỉ mục phần tử theo nội dung, lặp qua mảng, tức là
function el_index {
cnt=0; for el in "${ar[@]}"; do
[[ $el == "$1" ]] && echo $cnt && break
((++cnt))
done
}
el_index "Age" # => 1