![使用位置参数启动新 shell](https://linux22.com/image/156815/%E4%BD%BF%E7%94%A8%E4%BD%8D%E7%BD%AE%E5%8F%82%E6%95%B0%E5%90%AF%E5%8A%A8%E6%96%B0%20shell.png)
使用 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