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
相关推荐
开发者小天2 小时前
python中For Loop的用法
java·服务器·python
绾樘3 小时前
RHCE--基于Nginx的Web服务器配置
运维·服务器·nginx
生活很暖很治愈3 小时前
Linux基础开发工具
linux·服务器·git·vim
打工的小王3 小时前
docker(三)具体项目的部署
运维·docker·容器
似霰4 小时前
Linux Shell 脚本编程——核心基础语法
linux·shell
步步为营DotNet6 小时前
深度剖析.NET中IHostedService:后台服务管理的关键组件
服务器·网络·.net
一叶星殇6 小时前
.NET WebAPI:用 Nginx 还是 IIS 更好
运维·nginx·.net
LUCIFER6 小时前
[驱动进阶——MIPI摄像头驱动(五)]rk3588+OV13855摄像头驱动加载过程详细解析第四部分——ISP驱动
linux·驱动开发
暮云星影6 小时前
四、linux系统 应用开发:UI开发环境配置概述 (一)
linux·ui·arm
a程序小傲7 小时前
得物Java面试被问:RocketMQ的消息轨迹追踪实现
java·linux·spring·面试·职场和发展·rocketmq·java-rocketmq