Tôi đã gặp tình huống này:
./
./myscript.sh
./arguments.txt
./test.sh
Bên trong myscript.sh
, tôi phải chạy tập tin test.sh
, chuyển cho nó các đối số chứa bên trong arguments.txt
.
myscript.sh là:
arguments=$(cat arguments.txt)
source test.sh $arguments
Điều này hoạt động tốt nếu nếu argument.txt chứa nhiều nhất một đối số:
firstargument
Sự thay thế là:
++ source test.sh 'firstargument'
Nhưng vấn đề là với hai hoặc nhiều đối số. Nó làm điều này:
++ source test.sh 'firstargument secondargument'
Ngoài ra, tôi không biết trước số lượng đối số bên trong arguments.txt
. Có thể có 0 hoặc nhiều hơn.
source test.sh "$arguments"
với dấu ngoặc kép? Đó sẽ là một lời giải thích cho mô tả của bạn
source test.sh "$arguments"
và source test.sh $arguments
cả hai kết quả trong source test.sh 'firstargument secondargument'
.