我目前正在学习UNIX,一切顺利。刚刚介绍了不同的shell,即Bourne SHell(sh),Bourne Again SHell(BASH)和Korn SHell(KSH)等,我明白进入不同的shell会通过命令向其他应用程序提供不同的功能等。但是我是什么不清楚是什么"切换"在UNIX操作系统中说我从sh到ksh?它只是去了文件结构中的不同位置或者什么??
答案 0 :(得分:0)
据我所知,进入不同的shell会通过命令向其他应用程序等提供不同的功能。
这是不正确的。
您以交互方式使用哪个shell作为用户没有承担 shell应用程序在使用system()
C库调用时使用的内容或任何等效的(在编写良好的时候)应用程序首先不做:良好的做法是直接调用exec
- 系列调用以在需要时启动外部命令,而不是根本不使用临时shell。因此,用户的交互式shell没有机制来选择应用程序的行为方式,因为它实际上并没有进行任何此类选择。
当你的shell是ksh
时,它是ksh提供你输入的实际交互式提示;将您键入的命令与其别名,函数和内置函数进行比较,并查找要运行的外部命令,但是如果您传递外部命令,则一旦该命令运行,它就不知道哪个shell调用了它(除非该信息是在$SHELL
)等环境变量中导出的,并且不会根据该变量更改其行为。