加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何将参数传递给source命令调用的脚本?

发布时间:2020-12-13 19:18:33 所属栏目:Linux 来源:网络整理
导读:我通过source命令调用脚本,并希望将参数传递给脚本. 我检查了man source,bash返回: : [arguments] No effect; the command does nothing beyond expanding arguments and performing any specified redirections. A zero exit code is returned. source fil
我通过source命令调用脚本,并希望将参数传递给脚本.

我检查了man source,bash返回:

: [arguments]
No effect; the command does nothing beyond expanding arguments and performing any specified redirections. A zero exit code is returned.

source filename [arguments]
Read and execute commands from filename in the current shell environment and return the exit status of the last command executed from filename. If filename does not contain a slash,file names in PATH are used to find the directory containing filename. The file searched for in PATH need not be executable. When bash is not in posix mode,the current directory is searched if no file is found in PATH. If the sourcepath option to the shopt builtin command is turned off,the PATH is not searched. If any arguments are supplied,they become the positional parameters when filename is executed. Otherwise the positional parameters are unchanged. The return status is the status of the last command exited within the script (0 if no commands are executed),and false if filename is not found or cannot be read.

它没有例子,所以我不明白.

解决方法

使用以下内容创建文件test.sh:
echo "I was given $# argument(s):"
printf "%sn" "$@"

然后从交互式shell会话中获取它:

$source ./test.sh a 'b c'
I was given 2 argument(s):
a
b c

所以你可以像在普通的bash脚本中一样访问参数,使用$@或$1,$2,$3等.

为了比较,将其作为常规脚本运行:

$bash ./test.sh a 'b c'
I was given 2 argument(s):
a
b c

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读