Tôi đang cố gắng thực hiện một tập hợp các dòng lệnh được lưu trữ dưới dạng chuỗi trong một mảng. Mã của tôi trông như thế này:Thực hiện một mảng chuỗi mô tả lệnh shell
arr=("sudo apt-get update" "sudo apt-get install xxx")
...
arr=(${arr[@]} "ln -s /path1 /path2")
etc...
# Then I loop on the array of command
for ((i = 0 ; i < ${#arr[@]} ; i++))
do
eval ${arr[$i]}
done
Khi nó vòng qua mảng, mảng lớn hơn số lệnh được lưu trữ vào nó. Như nếu khoảng trống trong chuỗi của tôi chia mảng trong các yếu tố hơn Một ouput điển hình là ví dụ như
usage: sudo -h | -K | -k | -L | -V
Điều đó có nghĩa chỉ 'sudo' được lấy từ trong chuỗi và tôi không hiểu tại sao!
Cảm ơn
Bạn có thể chỉ ra cách 'loc_com' được đặt/sử dụng không? – chown
như chown nói, bạn có thể đặt một echo $ {loc_com [$ i]} trước khi gọi nó. – aayoubi
Bạn có thể vui lòng đăng một trường hợp thử nghiệm mà có thể hình dung được mà không cần chỉnh sửa? –