Linux运行脚本报错:deploy.sh: 4: local: not in a function

Linux运行脚本报错:deploy.sh: 4: local: not in a function

运行命令:

shell 复制代码
sh deploy.sh start

脚本大致内容:

shell 复制代码
#!/bin/bash
function start
{
  local server_pid=1
  return 0
}

其实这个问题我之前遇到过,local 是修饰局部变量的,需要放在函数里面,不能放在函数外面,但是这里本来就是在函数里面,还是报这个错......

去搜了下,居然一时半会没找到,然后问GPT,有点6!

你遇到的错误是因为在脚本中使用了 local 关键字,而 local 关键字只能在函数内部有效,且在 sh 或 dash

中是不可用的。默认情况下,许多 Linux 系统上的 /bin/sh 是 dash 而不是 bash,而 dash 不支持 local

关键字。

shell 复制代码
# 查看当前使用的shell(当前系统是ubuntu,不知道是不是默认的)
#参考:https://blog.csdn.net/Kukafee/article/details/118155159
root@WatsonsUbuntu:~# echo $0
-bash

没想到是脚本执行器的原因,用bash执行就正常了。(有点奇怪为什么这个会影响local???)

shell 复制代码
bash deploy.sh start
相关推荐
想唱rap几秒前
TCP套接字编程
java·linux·网络·c++·tcp/ip·mysql·ubuntu
承渊政道3 分钟前
用群晖部署OmniBox+pansou:把分散的影视资源全聚合到一个界面里
服务器·windows·网络协议·https·ip·视频·持续部署
heiqizero5 分钟前
spark01-创建RDD
linux·前端·python
Agent手记5 分钟前
生产工单下发不及时,频繁导致交付延期怎么办? 2026企业级智能体自动化实操指南
运维·ai·自动化
共享家95275 分钟前
轻量级日志模块实现:策略模式 + RAII 的工程化实践
linux·运维·服务器
水木流年追梦6 分钟前
CodeTop Top 300 热门题目8-字符串解码
linux·运维·服务器·前端·算法·leetcode
杨云龙UP6 分钟前
Docker MySQL 5.7 全库备份到异地服务器实践记录_20260427
linux·运维·服务器·数据库·mysql·docker·容器
剩下了什么10 分钟前
dockerfile-知识概念介绍
linux·运维·服务器
勤劳的进取家14 分钟前
如何配置服务器代理转发
运维·服务器
jialan7514 分钟前
上海服务器 CentOS7.6 mysql8 redis jdk17 Tomcat10
运维·服务器·redis