【问题标题】:Why is the positional parameter still present after sourcing the script?为什么在获取脚本后位置参数仍然存在?
【发布时间】:2018-04-29 18:55:04
【问题描述】:

我正在采购一个脚本,并且即使在采购了脚本之后,位置参数的值也会反映出来。

$ echo $1

$ . $SCRIPTS_DIR/xeye.sh ryadqa
Done
$ echo $1
ryadqa

【问题讨论】:

  • 为什么它会因为你提供了一个脚本而消失......?这是完全预期的行为 afaik
  • 在其他环境中不是这样。位置参数是相对于脚本的。我不确定,如果这是预期的。
  • @summithere :您标记了您的问题 bashksh。你应该清楚,你是想要 bash 还是 ksh 的答案。

标签: shell unix ksh positional-parameter


【解决方案1】:

至于 bash,这是来自 bash 手册页,其中解释了 source 命令:

source filename [arguments] ... 如果提供了任何参数,它们将成为执行 filename 时的位置参数。否则位置参数不变。

(请注意,位置参数是指源脚本的位置参数,因为文件的源发生在源脚本的上下文中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多