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
相关推荐
book01212 分钟前
MySql数据库运维学习笔记
运维·数据库·mysql
leoufung6 分钟前
VIM FZF 安裝和使用
linux·编辑器·vim
bugtraq20211 小时前
XiaoMi Mi5(gemini) 刷入Ubuntu Touch 16.04——安卓手机刷入Linux
linux·运维·ubuntu
xmweisi1 小时前
【华为】报文统计的技术NetStream
运维·服务器·网络·华为认证
VVVVWeiYee1 小时前
BGP配置华为——路径优选验证
运维·网络·华为·信息与通信
陆鳐LuLu1 小时前
日志管理利器:基于 ELK 的日志收集、存储与可视化实战
运维·elk·jenkins
CodeWithMe2 小时前
[ Vim ] 常用命令 and 配置
linux·编辑器·vim
DC_BLOG2 小时前
Linux-GlusterFS进阶分布式卷
linux·运维·服务器·分布式
yourkin6662 小时前
TCP...
服务器·网络·tcp/ip
cookies_s_s2 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法