gpt4 book ai didi

linux - shell 内的 shell 脚本 shell

转载 作者:IT王子 更新时间:2023-10-29 01:08:27 30 4
gpt4 key购买 nike

我想连接到不同的 shell(csh、ksh 等)并在每个切换的 shell 中执行命令。

下面是反射(reflect)我的意图的示例程序:

#!/bin/bash
echo $SHELL
csh
echo $SHELL
exit
ksh
echo $SHELL
exit

因为,我不太精通 Shell 脚本,需要有关如何实现此目的的指导。任何帮助将不胜感激。

最佳答案

如果只想执行一条命令,可以使用-c选项

csh -c 'echo $SHELL'
ksh -c 'echo $SHELL'

如果您想在子 shell 中执行多个命令,甚至是整个脚本,您可以使用 bash 的 here-document 功能并使用 -s(从 stdin) 在子 shell 上:

#!/bin/bash
echo "this is bash"

csh -s <<- EOF
echo "here go the commands for csh"
echo "and another one..."
EOF
echo "this is bash again"
ksh -s <<- EOF
echo "and now, we're in ksh"
EOF

请注意,您不能通过 echo $SHELL 轻松检查您所在的 shell,因为父 shell 展开此变量为文本 /。/./庆典。如果您想确保子 shell 正常工作,您应该检查特定于 shell 的语法是否正常工作。

关于linux - shell 内的 shell 脚本 shell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30029517/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com