Linux系统学习(6.2): Shell基础-脚本执行方式
示例:
示例:
初学者通常有疑问:在当前目录运行这个程序,为什么还要前面加"./"?如果直接写命令" hello.sh",linux 系统会去 环境变量PATH 里寻找有没有叫" hello.sh "的,而只有" /bin, /sbin, /usr/bin,/usr/sbin" 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 "hello.sh" 是会找不到命令的。要用 "./hello.sh "告诉系统说,就在当前目录找。"./"代表当前目录。运行其它二进制的程序也是这样。
下面来运行一个脚本文件出故障的示例:
使用"cat -A"命令来查看"Tetris.sh"的内容("-A"选项可以查看隐藏的内容):
再查看一个正常脚本的内容:
可以发现两个文件每行结尾的隐藏字符不一样。
这样的情况是windows系统下编写的shell放到linux下运行的故障,这是因为在windows下的换行符和在Linux下的换行符是不一样的。
解决这样问题,可以使用 dos2unix 来转换(如系统没有这个工具,可以直接用"yum install dos2unix"命令安装):
同样,linux的shell在windows下运行,可以用unix2dos来转换。