这几天发现构建脚本太过庞大,于是就想把重复的单项构建独立成一个脚本。结果马上面临一个问题:参数带有空格!
在网上折腾了一番,也没有解决。于是自己尝试了一番,终于找到真正解决办法。这个办法的优点是,可以同时传递多个带空格的参数。注意下文中有黑体的部分:
主脚本test.sh:
PROJECT_CLEAN=0
PROJECT_FILES="file1 file2"
./build-project.sh $PROJECT_CLEAN "$PROJECT_FILES"
辅脚本build-project.sh:
PARAM_CLEAN=$1
PARAM_FILES="$2"
for file_name in $PARAM_FILES
do
echo $file_name
done
用双引号就可以了,这样就是一个整体
例如:
test.sh "hello world"
脚本中取参数时也要用双引号: "$1"
将包含空格的字符串用双引号引起来,这样就可以传递了。
# cat 1
#!/bin/bash
echo $1
# sh 1 "12 23 4 "
12 23 4
字符串加引号,或者空白前面加转义符。