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

本文解释了在Linux环境下为何需要使用./前缀来运行当前目录下的Shell脚本,并通过示例展示了Windows与Linux换行符不一致导致的运行错误,以及如何使用dos2unix和unix2dos工具进行修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例:

 

 

 

示例:

 

 

     初学者通常有疑问:在当前目录运行这个程序,为什么还要前面加"./"?如果直接写命令" 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来转换。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值