shell脚本参数中有空格

现在想正常传递字符串中的空格,求解。
2024年11月18日 20:46
有5个网友回答
网友(1):

这几天发现构建脚本太过庞大,于是就想把重复的单项构建独立成一个脚本。结果马上面临一个问题:参数带有空格!

在网上折腾了一番,也没有解决。于是自己尝试了一番,终于找到真正解决办法。这个办法的优点是,可以同时传递多个带空格的参数。注意下文中有黑体的部分:

主脚本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

网友(2):

用双引号就可以了,这样就是一个整体
例如:
test.sh "hello world"

脚本中取参数时也要用双引号: "$1"

网友(3):

将包含空格的字符串用双引号引起来,这样就可以传递了。

网友(4):

# cat 1
#!/bin/bash
echo $1
# sh 1 "12 23 4 "
12 23 4

网友(5):

字符串加引号,或者空白前面加转义符。