如果我有一个批处理文件并且只想使用所有给定的脚本参数,我可以使用%*.
示例a.bat
echo %*
Run Code Online (Sandbox Code Playgroud)
调用a.bat 1 2 3 4给出:
1 2 3 4
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 bash 脚本中做同样的事情?
"$*"将返回一个字符串,其中所有参数均以空格分隔。
"$@"将返回 N 个字符串,每个参数一个。
例子a.sh:
echo "$@"
Run Code Online (Sandbox Code Playgroud)
调用a.sh 1 2 3 4给出:
1 2 3 4
Run Code Online (Sandbox Code Playgroud)
另一个例子a.sh:
printf "%s\n" "$@"
Run Code Online (Sandbox Code Playgroud)
调用a.sh 1 '2 2' '3 3 3' '4 4 4 4'给出:
1
2 2
3 3 3
4 4 4 4
Run Code Online (Sandbox Code Playgroud)
与以下情况相反a.sh:
printf "%s\n" "$*"
Run Code Online (Sandbox Code Playgroud)
这将打印:
1 2 2 3 3 3 4 4 4 4
Run Code Online (Sandbox Code Playgroud)