如何在bash
变量中存储带有包含空格的参数的参数向量?
例如,我想2.sh
打印b c
1.sh
#!/bin/bash
ARGV='a "b c"'
./2.sh $ARGV
2.sh
#!/bin/bash
echo $2
答案1
您应该使用数组而不是字符串:
args=("a" "b c")
./2.sh "${args[@]}"
当数组扩展被引用时,数组的每个元素都会被正确扩展。
如何在bash
变量中存储带有包含空格的参数的参数向量?
例如,我想2.sh
打印b c
#!/bin/bash
ARGV='a "b c"'
./2.sh $ARGV
#!/bin/bash
echo $2
您应该使用数组而不是字符串:
args=("a" "b c")
./2.sh "${args[@]}"
当数组扩展被引用时,数组的每个元素都会被正确扩展。