0

我正在编写一个 bash 脚本,它将 tcsh 解释器作为登录 shell 启动并让它执行my_command。tcsh 手册页说有两种方法可以启动登录 shell。第一个是不使用/bin/tcsh -l其他参数。不是一个选项,因为我需要 shell 来执行my_command. 第二个是指定一个破折号(- ) 作为第 0 个参数。

现在带有选项的 bashexec命令-l正是这样做的,事实上,以下内容完美地工作:

#!/bin/bash
exec -l /bin/tcsh -c my_command

除了......我不能使用exec,因为我需要脚本回来然后做一些其他的事情!那么如何在不使用的情况下将其指定-为 zeroeth 参数?/bin/tcshexec

4

2 回答 2

2

您可以将exec命令包含在脚本的子 shell 中。

#!/bin/bash
(exec -l /bin/tcsh -c my_command)
# ... whatever else you need to do after the command is done
于 2012-08-23T20:23:37.063 回答
1

您可以编写一个包装器 (w.sh) 脚本,其中包含:

#!/bin/bash
exec -l /bin/tcsh -c my_command

并在您的主脚本中执行 w.sh 。

于 2012-08-23T19:44:44.970 回答