在Linux下运行shell脚本时,经常会遇见Command not found的问题,对于这类问题,基本上可以归类为以下原因:
1、忘记在脚本第一行加上#!/bin/bash或者#!/bin/s
shell一种解释性语言,和编译语言不同的是它需要解释器来解释运行,脚本的第一行指定了解释器的位置和类型,没有这一句的话,脚本无法解释也就无法运行。有的脚本没有这一句之所以能运行,是因为有的系统默认解释器位置位于/bin/bash,这样脚本也能正常运行;
2、文件格式不对
有些情况是脚本的编辑和运行不是在同一个机器上,这样就导致了脚本的文件格式不是运行机器默认的文件格式,导致脚本无法正常运行,有以下步骤可以解决:
(1)使用vi命令打开脚本vi 脚本名.sh
(2)按下Esc键然后按下Shift+:键,输入set ff回车
(3)假如看到fileformat=dos的字样,说明文件格式不对,输入set ff=unix回车然后输入wq保存退出
假如以上改变文件格式的步骤依然不想,可以直接使用busybox命令改变文件格式:
busybox dos2unix test.sh
假如以上方法都无法解决的话,可以新建一个脚本文件,手动输入老脚本的内容即可