Shell脚本编写可能遇到的问题

      在编写shell脚本过程中,由于格式和语法问题,可能导致执行脚本不成功。

梳理一些可能的原因如下:

1. No such file or directory没有那个文件或目录

问题分析:
1、将windows 下编写好的SHELL文件,传到linux下执行,提示出错。
2、出错信息:bad interpreter: 没有那个文件或目录。

问题原因:
因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。脚本文件是DOS格式的
即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.

解决方法:
可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的
方法一: vim filename
然后用命令 :set ff
可看到dos或unix的字样

如果的确是dos格式的, 那么用set ff=unix写在脚本文件的最后一行把它强制为unix格式的,然后存盘退出后就可运行。

方法二:通过NodePad++编辑器,转换成Windows,Unix/Linux,Mac系统格式

         (1)查看当前文件格式(换行符用的是什么字符)

         (2)从Windows转换为Unix/Linux格式

扫描二维码关注公众号,回复: 4059219 查看本文章

2. Cannot write to file uldrdate.1.txt不能写入文件

问题分析:

   这个报错实在执行sqluldr2.bin导出数据时遇见的,后来发现是因为file参数不识别,默认输入文件是uldrdate.1.txt

解决方法:

      最后我是通过把所有参数都写成一行解决的,注:编写shell时,一个命令及其参数建议写成一行,不容易出错

参考:http://www.cnblogs.com/xuelei/p/4505097.html

猜你喜欢

转载自blog.csdn.net/z453588/article/details/83894376