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
相关推荐
susu10830189111 分钟前
ubuntu系统检测内核配置是否支持Docker核心模块
运维·docker·容器
Sgf2271 分钟前
第7章 文件操作
服务器·开发语言·数据库·python
dustcell.28 分钟前
docker容器
运维·docker·容器
路由侠内网穿透29 分钟前
本地部署开源网络书签与内容管理工具 Karakeep 并实现外部访问
运维·服务器·网络·数据库·开源
xingyuzhisuan31 分钟前
租用GPU服务器后,快速搭建Stable Diffusion WebUI并实现公网访问全指南
服务器·人工智能·云计算·gpu算力
Forget_855032 分钟前
RHEL——Docker容器技术
运维·docker·容器
Fairy要carry39 分钟前
项目05-手搓Agent之任务通信+任务编排的实现
服务器·前端·网络
色空大师39 分钟前
【网站开发-java】
java·linux·服务器·开发语言·网站·搭建网站
释怀不想释怀1 小时前
硬盘基础了解知识
linux·运维·服务器
weixin_423594641 小时前
Buddy - AI 浏览器智能体:用自然语言自动化完成多步骤任务
运维·人工智能·自动化