-
csh tcsh ksh
等等都是shell的一种。下面举得例子都是按默认shell 是 csh 来说,如果是bash 则默认就是bash,具体看terminal用的是什么shell。
查看当前shell
>> ps | grep $$ | awk '{print $4}'
-
tclsh perl python
都是编译器相当于Windows的软件,当然上面的几种shell其实也是软件,只是在terminal运行的软件。 - 在shell里面,source 和 "." 是同一个作用,例如:
>> source temp.csh
>> . temp.csh
- 这里不管文件是否有可执行的权限都会执行,如果
temp.csh
里面有第一行并且是#!/usr/bin/tcl
, 则这个脚本会以tclsh
编译器来执行。- 如果没有定义第一行则还是默认的
csh
来执行。- 如果文件本身是有可执行的权限的,那么可以省去
source
或者"."
, 同样如果文件开头有定义的编译器,则按定义的来执行,如果没有则是默认的csh
>> chmod 755 temp.csh
>> temp.csh
或者
>> ./temp.csh
- 如果用这个命令来执行, 那么不管里面第一行有没有定义,或者定义成别的编译器都只会用
tclsh
去执行。注意和上面的区别,因为这里已经规定了编译器。
>> tclsh temp.csh
或者
>> tclsh ./temp.csh
- 再比如下面, 只会以perl去执行,如果里面的语法不对就会报错。
>> perl temp.csh
- 文件可执行时,执行的编译器看脚本里面第一行定义的类型,如果没有定义默认是
csh
>> ./temp.csh
或者
>> temp.csh
- 文件没有可执行的权限时,执行的编译器看脚本里面第一行定义的类型,如果没有定义默认是
csh
>> source ./temp.csh
或者
>> . ./temp.csh
- 以特定的编译器去执行时, 不管脚本里面第一行有没有定义,都只会以特定的编译器语法去识别脚本里的内容,有问题会报错。
>> perl ./temp.csh
>> tclsh ./temp.csh
>> python ./temp.csh
注意
tcsh
和tclsh
的区别
tcsh
是shell
的一种
tclsh
是tcl shell
网友评论