如何向Shell脚本传递参数?

9

我有一个像这样的批处理文件:

java temptable %1 %2

我需要上述内容的等效shell脚本。我将把参数传递给shell脚本,然后应该将它们传递给temptable。

这是一篇关于如何向shell脚本传递参数的文章。它涵盖了大部分关于命令行参数的内容。如何向shell脚本传递参数 - user213277
2个回答

18

对于bash(它是一种shell,但可能是Linux世界中最常见的),等效的命令是:

对于bash(它是一种 shell,但可能是Linux世界中最常见的),等效的命令是:

java temptable $1 $2

假设参数中没有空格。如果存在空格,您应该对参数加引号:

java temptable "$1" "$2"

你也可以这样做:

java temptable $*
或者:
java temptable "$@"

如果你想要传递所有参数(注意,第二个参数等同于引用每个参数:"$1" "$2" "$3" ...)。


这也适用于sh和所有派生的shell,而不仅仅是bash(据我所知)。 - David Rodríguez - dribeas
我不想代表jsh/rc/rsh/tcsh/zsh/csh/ksh/bash/ash/sh/*sh发言,并假设它们都是相同的。 - paxdiablo
sh/ksh/bash家族非常相似。我认为zsh更接近(ba|k)?sh而不是csh家族。 - Vatine

10
#!/bin/bash
# Call this script with at least 3 parameters, for example
# sh scriptname 1 2 3
echo "first parameter is $1"
echo "Second parameter is $2"
echo "Third parameter is $3"
exit 0

输出:

[root@localhost ~]# sh parameters.sh 47 9 34
first parameter is 47
Second parameter is 9
Third parameter is 34

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接