【发布时间】:2011-04-18 09:17:31
【问题描述】:
系统默认的shell是csh,但是我想在bash写一个脚本。如何编写一个脚本来运行 bash,然后在最后转换回 csh。
我试过了,但它不起作用:
bash
var=Hello
echo $var
csh
【问题讨论】:
-
使用 DOS .bat 文件,您可能需要担心切换回来(尽管我不确定该概念是否正确适用)。使用 Unix,您不必担心。
系统默认的shell是csh,但是我想在bash写一个脚本。如何编写一个脚本来运行 bash,然后在最后转换回 csh。
我试过了,但它不起作用:
bash
var=Hello
echo $var
csh
【问题讨论】:
您要查找的命令是exit。在键盘上键入时使用exit 而不是csh 以返回csh。当您输入csh 时,它刚刚在已经运行的 csh 和 bash 会话之上启动了一个新的 csh 会话。
%bash
$ var=Hello
$ echo $var
Hello
$ exit
exit
%
正如其他人所说,使用脚本时:
#! /bin/bash
var=Hello
echo $var
exit # You don't need exit; but it's okay here.
【讨论】:
您无需再次更换外壳。当脚本运行时,它将由一个子shell(在脚本结束时退出)运行,并且父shell不变。因此,正如已经建议的那样,您唯一需要做的就是确保脚本由正确的 shell 运行,而“shebang”就是这样做的方法:
#!/bin/bash
var=Hello
echo $var
仅此而已。
【讨论】:
使用 sha bang 定义它
#!/bin/bash
在文件的开头。
【讨论】:
#!/bin/csh ?