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

前端之家收集整理的这篇文章主要介绍了linux – 如何将参数传递给source命令调用的脚本?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过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 "%s\n" "$@"

然后从交互式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

猜你在找的Linux相关文章