在bash脚本中传递多个参数
下面的简单脚本在我希望通过扩展字符传递多个文件而不是传递单个文件名时不起作用,如*在bash脚本中传递多个参数,bash,shell,Bash,Shell,下面的简单脚本在我希望通过扩展字符传递多个文件而不是传递单个文件名时不起作用,如* #!/bin/bash fgrep -c '$$$$' $1 如果我在中发出命令script.sh file.in,脚本就会工作。如果我在中发出命令script.sh*。使用“$@”将多个文件名传递给fgrep$1只传递第一个文件名 fgrep -c '$$$$' "$@" 使用“$@”将多个文件名传递给fgrep$1只传递第一个文件名 fgrep -c '$$$$' "$@" $1未在中设置为*;它被设置
#!/bin/bash
fgrep -c '$$$$' $1
如果我在中发出命令script.sh file.in,脚本就会工作。如果我在
中发出命令script.sh*。使用“$@”
将多个文件名传递给fgrep<代码>$1
只传递第一个文件名
fgrep -c '$$$$' "$@"
使用“$@”
将多个文件名传递给fgrep<代码>$1只传递第一个文件名
fgrep -c '$$$$' "$@"
$1
未在中设置为*;它被设置为*。在
中展开为的第一项。@chepner,如果不存在匹配的文件,则可能是*。在
中。;)<代码>$1
未设置为*。
中;它被设置为*。在
中展开为的第一项。@chepner,如果不存在匹配的文件,则可能是*。在
中。;)@mimenico注意到,$1
是$@
的子集,正好指第一个参数;此外,引用(通常)比不引用好:因此,$@
比$*
@mimenico好。请注意,$1
是$@
的子集,正好指第一个参数;而且,引用(通常)比不引用好:因此,$@
比$*
好。