我正在编写一个bash脚本,它将tcsh解释器作为登录shell启动并让它执行my_command
。 tcsh手册页说有两种方法可以启动登录shell。第一种是使用/bin/tcsh -l
而没有其他参数。不是一个选项,因为我需要shell来执行my_command
。第二种是将短划线(-
)指定为零点参数。
现在带有exec
选项的bash -l
命令就是这样做的,事实上以下工作完美无缺:
#!/bin/bash
exec -l /bin/tcsh -c my_command
除了......我不能使用exec
因为我需要脚本回来后再做一些其他事情!那么如何在不使用-
的情况下将/bin/tcsh
指定为exec
的零参数?
答案 0 :(得分:2)
您可以将exec
命令括在脚本的子shell中。
#!/bin/bash
(exec -l /bin/tcsh -c my_command)
# ... whatever else you need to do after the command is done
答案 1 :(得分:1)
您可以编写包含以下内容的包装器(w.sh)脚本:
#!/bin/bash
exec -l /bin/tcsh -c my_command
并在主脚本中执行w.sh。