linux ubuntu 执行自己写的shell脚本报错 not found
脚本
自己写了一个nodejs 爬虫,现在想定时爬取目标。所以写了一个shell 进行循环爬虫。
报错提示
: not found:
not found: clear
not found: }
not found:
not found:
not found1: clear_screen
错误分析
问题可能不是函数位置的问题,而是 Shell 解释器的问题。让我们尝试以下解决方案:
首先,确保文件是 Unix 格式的
dos2unix run.sh
修改脚本的第一行,明确指定使用 bash
#!/usr/bin/env bash
使用 bash 命令执行脚本
bash run.sh
或
bash -x run.sh # 这会显示详细的调试信息
检查文件权限
chmod +x run.sh
如果还是有问题,我们可以简化一下代码,去掉函数调用,直接使用命令:
#!/usr/bin/env bash
# 显示介绍信息
show_introduction() {
clear # 直接使用 clear 命令而不是函数调用
echo "================================================"
echo " 自动化执行管理脚本 "
echo "================================================"
echo "作者: bug"
echo "版本: 1.0.1"
echo "更新日期: $(date +%Y-%m-%d)"
echo "------------------------------------------------"
echo "功能说明:"
echo "- 支持单个命令执行"
echo "- 支持循环执行所有命令"
echo "- 自动记录执行日志"
echo "- 支持管理员权限检查"
echo "- 杀死 node 进程"
echo "- 实时监控 CPU 和内存使用情况"
echo "------------------------------------------------"
read -p "按回车键继续..."
}
# 其他函数保持不变...
# 主菜单
show_menu() {
clear # 直接使用 clear 命令
echo "================================================"
echo " 主菜单 "
echo "================================================"
# ... 其余代码保持不变
}
# 主程序
main() {
# 检查权限
check_sudo
# 显示介绍
show_introduction
# ... 其余代码保持不变
}
# 执行主程序
main
请尝试使用以下命令执行脚本:
bash run.sh
如果还是报错,请将错误信息完整地贴出来,留言评论,这样我可以更好地帮你定位问题。同时,也告诉我你使用的是什么操作系统和 Shell 版本:
echo $SHELL
bash --version
这些信息会帮助我们更准确地找出问题所在。
总结,最后使用
使用以下命令基本解决问题
apt install dos2unix
安装dos2unix 工具
dos2unix run.sh
转换格式
输入 执行指令即可
bash -x run.sh
本作品采用《CC 协议》,转载必须注明作者和本文链接