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
相关推荐
律宏阔4 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔4 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴4 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千4 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei374 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei374 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei374 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh4 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW4 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux
百万蹄蹄向前冲4 小时前
双端同步!云服务器装最新Node.js v26.10全过程追踪
服务器·人工智能·node.js