Linux

Linux Shell

2019-10-30  本文已影响0人  夏秋之萌
查看当前shell
>> ps |  grep $$ | awk '{print $4}' 
  >> 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
  1. 文件可执行时,执行的编译器看脚本里面第一行定义的类型,如果没有定义默认是csh
>> ./temp.csh
或者
>> temp.csh
  1. 文件没有可执行的权限时,执行的编译器看脚本里面第一行定义的类型,如果没有定义默认是csh
>> source ./temp.csh
或者
>> . ./temp.csh
  1. 以特定的编译器去执行时, 不管脚本里面第一行有没有定义,都只会以特定的编译器语法去识别脚本里的内容,有问题会报错。
>> perl ./temp.csh
>> tclsh ./temp.csh
>> python ./temp.csh

注意tcshtclsh的区别
tcshshell 的一种
tclshtcl shell

上一篇 下一篇

猜你喜欢

热点阅读