Ubuntu/Debian系统,执行sh ./servise.sh出现:Syntax error: “(“ unexpected

最近部署docker-compose,引用的jdk是ascdc/jdk8,对应JDK系统版本是ubuntu

执行sh servise.sh 总是报错语法错误

方案1

几经查找,终于知晓,原来Ubuntu/Debian为了加快开机速度,用dash代替了传统的bash,是dash默认执行了,解决方法就是取消dash。

dpkg-reconfigure dash

在选择项中选No

再次执行没有问题了

root@bfa381eb48ba:/home# sh service.sh restart
Stop test.jar
test.jar (pid:1) exiting...

方案2

第一行“#!/bin/bash“保持不变,只是在运行时我们调用bash去解释执行

root@bfa381eb48ba:/home# bash service.sh restart
Stop test.jar
test.jar (pid:1) exiting...

扩展
怎么区分 CentOS|Ubuntu|Debian

CentOS:

[root@ /]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

Ubuntu:

[root@ /]# cat  /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

Debian:

[root@ /]#  cat /etc/debian_version 
...

猜你喜欢

转载自blog.csdn.net/qq_26003101/article/details/113504269