最近部署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
...