使用位置参数启动新 shell

使用位置参数启动新 shell

使用 Python,我可以使用位置参数启动会话:

$ python3 - aa
>>> import sys
>>> sys.argv[1]
'aa'

然而,这对于 shell 来说似乎是不可能的:

$ sh - aa
sh: aa: No such file or directory

如何使用位置参数启动新 shell?

答案1

您可以使用该-s选项。从POSIX 描述sh:

sh -s [-abCefhimnuvx] [-o option]... [+abCefhimnuvx] [+o option]...
       [argument...]

-s
Read commands from the standard input.
If there are no operands and the -c option is not specified, the -s option shall be assumed.

所以:

% sh -s foo bar
sh-3.2$ echo "$@"
foo bar

相关内容