从bash进入cshell
我有一个bash脚本,需要在其中的cshell中运行一些命令从bash进入cshell,bash,csh,Bash,Csh,我有一个bash脚本,需要在其中的cshell中运行一些命令 #!/bin/bash echo entering_to_cshell csh echo in_cshell exit echo exited_from_cshell 为什么这个脚本没有按预期运行?它只打印进入cshell的,而不从cshell退出。 csh 在未执行脚本的地方启动一个新的子shell。这就是为什么没有执行以下命令的原因。您的脚本等待这个子shell结束,正如您所指出的,它永远不会发生 试一试 这样,您就不会创建
#!/bin/bash
echo entering_to_cshell
csh
echo in_cshell
exit
echo exited_from_cshell
为什么这个脚本没有按预期运行?它只打印进入cshell的,而不从cshell退出。
csh
在未执行脚本的地方启动一个新的子shell。这就是为什么没有执行以下命令的原因。您的脚本等待这个子shell结束,正如您所指出的,它永远不会发生
试一试
这样,您就不会创建一个不受脚本影响的新子shell。只需在脚本中调用csh
,就可以启动一个交互式csh子shell。您会注意到,一旦退出csh
会话,脚本将继续运行,并在退出时退出
要从bash脚本向csh
传递一系列命令,一种方法是使用语法将命令重定向到csh
#!/bin/bash
echo entering_to_cshell
csh <<EOF
echo in_cshell
exit
EOF
echo exited_from_cshell
#/bin/bash
回声进入\u至\u cshell
csh
#!/bin/bash
echo entering_to_cshell
csh <<EOF
echo in_cshell
exit
EOF
echo exited_from_cshell