繁体   English   中英

在(bash)脚本之间传递带有空格的参数

[英]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 firstMy second

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM