我有一个复杂的命令,我想制作一个shell/bash脚本.我可以$1轻松地写出来:
foo $1 args -o $1.ext
Run Code Online (Sandbox Code Playgroud)
我希望能够将多个输入名称传递给脚本.什么是正确的方法呢?
当然,我想处理其中包含空格的文件名.
我正在尝试获取bash脚本的引用参数,以便安全地通过嵌套脚本接收.有任何想法吗?
test.sh
#!/bin/bash
echo $*
bash myecho.sh $*
Run Code Online (Sandbox Code Playgroud)
myecho.sh
#!/bin/bash
echo $1
echo $2
echo $3
echo $4
Run Code Online (Sandbox Code Playgroud)
样品:
bash test.sh aaa bbb '"ccc ddd"'
Run Code Online (Sandbox Code Playgroud)
结果:
aaa bbb "ccc ddd"
aaa
bbb
"ccc
ddd"
Run Code Online (Sandbox Code Playgroud)
想要结果
aaa bbb "ccc ddd"
aaa
bbb
ccc ddd
Run Code Online (Sandbox Code Playgroud) 我一次又一次地看到Bash在Stack Overflow上使用eval的答案,并且答案得到了抨击,双关语是为了使用这种"邪恶"结构.为什么eval这么邪恶?
如果eval不能安全使用,我应该使用什么呢?