首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
V2EX 提问指南
广告
V2EX
›
问与答
向 shell 脚本传参数怎么带上引号
JohnLou
·
2016-11-18 22:57:21 +08:00
· 3129 次点击
这是一个创建于 2919 天前的主题,其中的信息可能已经有所发展或是发生改变。
bash 脚本
learn.sh
里有一行
/
test.sh
arg1 arg2 "arg3 $@"
test.sh
需要 3 个参数,像上面那样一直提示参数数量不对,用了转义双引号也不行。
脚本
参数
转义双
arg1
8 条回复
•
2016-11-19 08:40:52 +08:00
1
ik
2016-11-18 23:05:13 +08:00 via iPhone
"\"\""
不知道一样行不行
2
JohnLou
OP
2016-11-18 23:06:46 +08:00
@
ik
不可以。。
3
vghdjgh
2016-11-18 23:08:55 +08:00
双引号外面套单引号?
4
ik
2016-11-18 23:12:08 +08:00 via iPhone
@
JohnLou
好吧,脚本用的不多,不太清楚,
几个参数使用分隔符合并成一个参数,传递参数后再分割… 我只能想到这个办法了。仅做参考
5
JohnLou
OP
2016-11-18 23:14:04 +08:00
@
ik
tesh.sh
不能动,我这里是二进制的,只是举个例子。
6
jkeylu
2016-11-18 23:22:46 +08:00
1
把 $@ 改为 $*
"$*" 双引号包裹后等价于 "$1 $2 $3 ..."
"$@" 双引号包裹后等价于 "$1" "$2" "$3" ...
所以
/
test.sh
arg1 arg2 "arg3 $@"
相当于
/
test.sh
arg1 arg2 "arg3 $1" "$2" "$3" ...
7
JohnLou
OP
2016-11-18 23:27:42 +08:00
@
jkeylu
好像解决了,感谢。
8
ik
2016-11-19 08:40:52 +08:00 via iPhone
@
JohnLou
好吧。解决就好
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
2908 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms ·
UTC 13:37
·
PVG 21:37
·
LAX 05:37
·
JFK 08:37
Developed with
CodeLauncher
♥ Do have faith in what you're doing.