linux运行脚本运行不了,shell脚本在windows上可以执行,Linux上面不能执行
最近项目中用到了脚本.sh文件,本地测试可以跑,放到运行环境跑不了了。
脚本的内容是这样的:
#!/bin/bash -ex
set -ex
WORK_DIR=${WORKSPACE-"$(cd `dirname $0`;pwd)/.."}
PROG_NAME=$0
IMAGE_NAME=$1
IMAGE_VERSION=$2
usage() {
echo "Usage: $PROG_NAME \n
sh build_docker.sh --IMAGE_NAME XXX --IMAGE_VERSION XXX \n
--IMAGE_NAME : package or test \n
--IMAGE_VERSION : service IMAGE_VERSION. eg: 1.0.0 \n
eg: sh build_docker.sh --IMAGE_NAME test --IMAGE_VERSION 1.0.0 \n"
exit 2 # bad usage
}
if [ "$1" == "-h" ];then
usage
fi
while [[ $# -gt 0 ]]; do
key=$1
case $key in
--IMAGE_NAME)
IMAGE_NAME=$2
shift # past argument
shift # past value
;;
--IMAGE_VERSION)
IMAGE_VERSION=$2
shift # past argument
shift # past value
;;
*)
shift # past argument
shift # past value
;;
esac
done
if [ -z "$IMAGE_VERSION" ]; then
echo "ERROR: version is not defined!!!"
exit 1
fi
#cd ${WORK_DIR}/datatransfer/
mvn -DIMAGE_NAME=$IMAGE_NAME -DIMAGE_VERSION=$IMAGE_VERSION clean package docker:build -DskipTests
在windows下面脚本可以跑,放到Linux下面就跑步起来了,报错内容如下:
报错信息
Linux上查看
在Linux执行cat -v 可以看到有很多^M的字符,这个是windows的换行,所以在Linux中执行脚本会失败。而在windows中可以识别这些换行,所以可以正常执行脚本。
解决办法
vi 文件名
命令模式下输入:
:set fileformat=unix
:w
然后重新cat -v一下看到^M都没有了,这样脚本就可以在Linux中跑起来了。
linux运行脚本运行不了,shell脚本在windows上可以执行,Linux上面不能执行相关推荐
- linux脚本监控网卡流量,Shell脚本实现linux监控网卡实时流量[带宽]的方法
今天分享一个Linux网卡实时流量查看的shell脚本. 以下是脚本: #!/bin/bash if [ -z "$1" ]; then echo echo usage: $0 n ...
- Linux虚拟机 百度云 监控,使用Shell脚本监控KVM虚拟机
最近有朋友问我平时使用KVM虚拟机的时候用什么软件进行管理.其实我平时都是使用virsh命令通过命令行进行虚拟机的管理的.虽然RedHat有虚拟机管理和监控平台,但是只能在redhat发行版上使用,其 ...
- 电脑显示没有被指定在上运行_win10系统运行程序提示“dll没有被指定在windows上运行”的办法...
有关win10系统运行程序提示"dll没有被指定在windows上运行"的操作方法想必大家有所耳闻.但是能够对win10系统运行程序提示"dll没有被指定在windows ...
- Windows上的原生Linux容器(盆盆的Kubecon课程分享)
您测试过Windows上的Linux容器吗? 这是本周末刚闭幕的Kubecon大会,笔者在课堂上提出的问题. 关于这个问题,大家常有的困惑就是,我们为什么要在Windows上运行Linux容器?您可以 ...
- BML CodeLab重磅更新:在Windows上可原生Linux AI开发
自从微软发布 WSL2(Windows Subsystem for Linux 2)之后,机器学习开发者.数据科学家就可以在 Windows 上做原生 Linux 开发了. 但想正常的使用,其实并不简 ...
- Go Windows上生成适用于 Linux 的可执行文件
阅读目录 Go Windows上生成适用于 Linux 的可执行文件 Go Windows上生成适用于 Linux 的可执行文件 在Windows上生成适用于Linux的可执行文件是一项相对复杂的任务 ...
- Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写
背景:记录在linux环境下部署jar程序的过程 1 部署过程记录 1.1 程序结构 这里的main函数就在DemRest2.java 文件中. 为了部署方便,要做到以下两点: 1 在导出的jar包中 ...
- linux shell脚本 wget,bash – 在shell脚本中运行wget和其他命令
以下是编写shell脚本时要使用的一些准则. >使用它们时始终引用变量.这有助于避免误解的可能性. (如果文件名包含空格怎么办?) >不要相信像rm这样的命令上的文件加载.请改用循环. ( ...
- linux shell运行脚本命令行参数,shell脚本命令行参数简介
之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互. bash shell提供了命令行参数添加在命令后面的数据值).命令行选项修改命令行为的单字符值)和直接读取键盘输入. 1.命 ...
- 运行jar包的通用shell脚本
文章目录 1 问题背景 2 脚本 1 问题背景 研究技术时时常需要部署运行jar,每次手动输入java -jar xxx命令去启动项目就很烦.因此用一个shell脚本运行jar包变得很方便. 2 脚本 ...
最新文章
- HDU 4407 sum 容斥原理
- 对DeDecms之index.php页面的补充
- zabbix4.0添加mysql报警_部署监控三剑客 Zabbix4.0 监控以及告警机制
- Java 线程池之FixedThreadPool(Java代码实战-003)
- cannot import name '_C'
- urllib 模块学习
- 奥巴马:乔布斯改变我们每个人看世界的方式
- 为什么交叉熵(cross-entropy)可以用于计算代价?
- 开源 java CMS - FreeCMS2.8 数据对象 site
- appendChild+insertBefore:创建和添加节点
- Linux例行性工作排程 (crontab)
- 【WP开发】JSON数据的读与写
- Sublime Text 2 注册码/破解方法【蕃薯耀】
- 夏普Sharp MX-B6581D 一体机驱动
- MySQL数据库被删除如何恢复
- 二代测序方法:DNA测序之靶向重测序
- c语言用星号编写矩形,c语言星号打印矩形三角形菱形等图案.doc
- 如何免费下载学术论文-谷粉学术
- 《计算之魂》1.11.2--阅读心得
- 经验分享:魅族手机刷机步骤