[英]Passing arguments with spaces between (bash) script
我有以下 bash 两个脚本
灰:
#!/bin/bash
./b.sh 'My Argument'
b.sh:
#!/bin/bash
someApp $*
someApp 二进制文件接收$*
作为 2 个参数('My' 和 'Argument')而不是 1。
我已经测试了几件事:
b.sh
运行 someApp 按预期工作b.sh
的参数按预期工作$@
而不是$*
没有区别 $*
,不加引号,扩展为两个词。 您需要引用它,以便someApp
接收单个参数。
someApp "$*"
您可能想使用$@
代替,这样如果您将b.sh
调用为someApp
将收到两个参数
b.sh 'My first' 'My second'
使用someApp "$*"
, someApp
将收到一个参数My first My second
。 使用someApp "$@"
, someApp
将接收两个参数, My first
和My second
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.