$* 和 $@ 区别:
#!/usr/bin/env bash function asterisk () { echo "\"\$*\"" for var in "$*" do echo "$var" done } function mail () { echo "\"\$@\"" for var in "$@" do echo "$var" done } asterisk a b c mail a b c输出
"$*" a b c "$@" a b c当 $* 和 $@ 直接使用效果相同,都是接收一份数据如上所示的例子,接收到的就是:a b c,一份数据,以空格隔开。加了双引号后 "$@" 会将每个参数都当成一份独立的数据
参考资料VS code 打造 shell脚本 IDE
#!/bin/bash 和 #!/usr/bin/env bash 的区别
Shell脚本 - wiki
Linux跑脚本用sh和./有什么区别?
执行shell脚本三种方法的区别:(sh、exec、source)
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
exec 跟 source 差在哪?
bash - 如何删除数组中的元素,然后在 Shell 脚本中移动数组?
nohup /dev/null 2>&1 含义详解
Linux—shell中$(( ))、$( )、``与${ }的区别
Shell $*和$@的区别