Làm cách nào để chuyển đổi các đối số dòng lệnh thành một mảng script bash?
Tôi muốn lấy cái này:
./something.sh arg1 arg2 arg3
và chuyển đổi nó thành
myArray=( arg1 arg2 arg3 )
để tôi có thể sử dụng myArray để sử dụng thêm trong tập lệnh.
Bài viết SO trước đây đã đến gần, nhưng không đi sâu vào cách tạo một mảng: Làm thế nào để tôi phân tích các đối số dòng lệnh trong Bash?
Tôi cần chuyển đổi các đối số thành một mảng script bash thông thường; Tôi nhận ra rằng tôi có thể sử dụng các ngôn ngữ khác (ví dụ Python) nhưng cần phải làm điều này trong bash. Tôi đoán tôi đang tìm kiếm một chức năng "chắp thêm" hoặc một cái gì đó tương tự?
CẬP NHẬT: Tôi cũng muốn hỏi làm thế nào để kiểm tra các đối số bằng 0 và gán giá trị mảng mặc định và nhờ câu trả lời bên dưới, đã có thể làm cho điều này hoạt động:
if [ "$#" -eq 0 ]; then
myArray=( defaultarg1 defaultarg2 )
else
myArray=( "$@" )
fi