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
相关推荐
南境十里·墨染春水17 分钟前
linux学习进展 进程
linux·运维·学习
cyber_两只龙宝21 分钟前
【Oracle】Oracle之DQL中SELECT的基础使用
linux·运维·服务器·数据库·云原生·oracle
云栖梦泽22 分钟前
Linux内核与驱动:10.平台总线platform
linux
Deitymoon26 分钟前
linux——TCP多进程并发服务器
linux·服务器·tcp/ip
网络安全许木26 分钟前
自学渗透测试第15天(基础复习与漏洞原理入门)
linux·网络安全·渗透测试·kali linux
Hello World . .30 分钟前
linux驱动编程2 : uboot、Linux内核、rootfs来源及制作流程
linux·运维·服务器
.柒宇.39 分钟前
Ansible自动化运维实战笔记:环境搭建与四大核心模块详解
运维·自动化·ansible
啦啦啦_99991 小时前
1. Linux常用命令
linux·运维·服务器
大白菜和MySQL1 小时前
openEuler-20.03-LTS系统 nextcloud网盘搭建
linux
Harvy_没救了1 小时前
【Linux】Shell指令中的变量
linux·运维·服务器