我想让tcsh启动登录shell并执行命令。
我试过了:
tcsh -l -c ls
但收到此错误消息:
Unknown option: `-l'
Usage: tcsh [ -bcdefilmnqstvVxX ] [ argument ... ].
这doc纠正了我的理解; -l只能在它是唯一的参数时才能使用。但是,所述文档还表示指定' - '会起作用,但这导致了不同的错误:
> tcsh - -c ls
-: No such file or directory.
有什么建议吗?
答案 0 :(得分:1)
你误解了它对{18.474525, 20.161419, 20.33903} 4.96831567625921
{18.474525, 20.161419, 20.33903} 1.65052300046634
{18.474525, 20.161419, 20.33903} 4.80888617553369
{21.999333, 20.220667, 19.786734} 4.22499387836286
{18.333228, 21.649157, 21.125111} 180
{20.371077, 19.675844, 19.77649} 5.09280172684743
{17.04323, 19.3106, 20.148842} 180
{22.941106, 19.105412, 19.069893} 180
的看法,尽管我承认措辞令人困惑。它说参数 0 必须是-
。参数0是程序本身的名称,而不是命令行上命令后的参数。
它的实际工作方式是-
以argv[0]
开始,它作为登录shell运行。检查-
的第一个字符是shell在登录期间通常检测到它们是如何运行的。这是因为当您登录为real时,系统将执行您的登录shell而不带参数,但会在shell名称前添加argv[0]
前缀。您可以在-
中看到这一点,您经常会看到ps
和-tcsh
等命令 - 这些是登录shell。
根据评论中的建议,您可以通过将命令传递给shell的标准输入来执行您想要的操作:
-bash