从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结束,正如您所指出的,它永远不会发生 试一试 这样,您就不会创建

我有一个bash脚本,需要在其中的cshell中运行一些命令

#!/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