Linux系统学习(6.2): Shell基础-脚本执行方式

Linux系统学习(6.2): Shell基础-脚本执行方式

Linux系统学习(6.2): Shell基础-脚本执行方式

示例:

Linux系统学习(6.2): Shell基础-脚本执行方式 

Linux系统学习(6.2): Shell基础-脚本执行方式 

Linux系统学习(6.2): Shell基础-脚本执行方式 

示例:

Linux系统学习(6.2): Shell基础-脚本执行方式 

Linux系统学习(6.2): Shell基础-脚本执行方式

Linux系统学习(6.2): Shell基础-脚本执行方式 

     初学者通常有疑问:在当前目录运行这个程序,为什么还要前面加"./"?如果直接写命令" hello.sh",linux 系统会去 环境变量PATH 里寻找有没有叫" hello.sh "的,而只有" /bin, /sbin, /usr/bin,/usr/sbin" 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 "hello.sh" 是会找不到命令的。要用 "./hello.sh "告诉系统说,就在当前目录找。"./"代表当前目录。运行其它二进制的程序也是这样。

 

下面来运行一个脚本文件出故障的示例:

Linux系统学习(6.2): Shell基础-脚本执行方式

使用"cat -A"命令来查看"Tetris.sh"的内容("-A"选项可以查看隐藏的内容): 

Linux系统学习(6.2): Shell基础-脚本执行方式

再查看一个正常脚本的内容:

 Linux系统学习(6.2): Shell基础-脚本执行方式

可以发现两个文件每行结尾的隐藏字符不一样。

这样的情况是windows系统下编写的shell放到linux下运行的故障,这是因为在windows下的换行符和在Linux下的换行符是不一样的。

解决这样问题,可以使用 dos2unix 来转换(如系统没有这个工具,可以直接用"yum install dos2unix"命令安装):

Linux系统学习(6.2): Shell基础-脚本执行方式 

同样,linux的shell在windows下运行,可以用unix2dos来转换。