我有一个包含命令行参数的文件,我想传递给另一个脚本.
但是这个文件包含诸如的元素"param 1" param2 param3.
让我们用参数test.tmp和脚本文件调用该文件script.sh.
如果我做:
script.sh -p `cat test.tmp` -other_params 1 2 3
Run Code Online (Sandbox Code Playgroud)
在script.sh之后接受p:
"param1"param2param3但我想:
param 1param2param3任何的想法?
精度小:假设script.sh不可修改.解决方案必须在shell中进行.
假设:这种方法需要每行包含一个参数. test.tmp
您可以将xargs与换行符分隔符一起使用:
cat test.tmp | xargs -d '\n' script.sh -p
Run Code Online (Sandbox Code Playgroud)
您可以将命令包装在eval:
eval "script.sh -p `cat test.tmp` -other_params 1 2 3"
$ cat test.tmp
"params 1" param2 param3
$ cat script.sh
#!/bin/bash
echo $1
echo $2
echo $3
echo $4
echo $5
echo $6
$ eval "./script.sh -p `cat test.tmp` other_params 1 2 3"
-p
params 1
param2
param3
other_params
1
Run Code Online (Sandbox Code Playgroud)