I am having trouble understanding what ${@} means in KSH
问题不长,这是什么意思?
1 | LogMsg"File:${@}" |
logmsg()是用时间戳记录消息的方法。
但是他妈的做了什么
1 | ${@} |
意思是?我还应该提到脚本还有1美元和2美元。谷歌没有结果。
字面上的:
1 2 3 | f() { printf '%s '"File: $@"; } f"First Argument""Second Argument""Third Argument" |
将扩展到并运行命令:
1 2 | printf '%s '"File: First Argument""Second Argument""Third Argument" |
这就是说:它扩展了您的论点列表(
这不同于:
1 2 | printf '%s ' File: $@ |
或
1 2 | printf '%s ' File: $* |
两者相同:
1 2 | printf '%s '"File:""First""Argument""Second""Argument""Third""Argument" |
…这两个字符串拆分和glob都扩展了参数列表,所以如果用户通过了,比如说,
它也不同于:
1 2 | printf '%s '"File: $*" |
同:
1 2 | printf '%s '"File: First Argument Second Argument Third Argument" |
…正如您在上面看到的,它通过将第一个字符放在
在
另一方面,
更多详细信息和示例:http://oreilly.com/catalog/korn2/chapter/ch04.html
这是命令行的参数集。如果通过
另一篇没有被其他文章解释的文章是使用