shell脚本换行(shell脚本换行拼接)

shell脚本,遇到换行时候执行错误

在ubuntu上执行sh脚本时出现 $’\r’:command not found

一脸懵逼。。。然后仔细检查脚本,对应行位置只是一个空行

最后各种查询才发现原因,脚本是我在window上编辑的,然后在ubuntu上运行的。。。嗯,所以出现了问题,,,

window下的换行是回车符+换行符,也就是\r ,而unix下是换行符 。ubuntu下不识别\r为回车符,所以导致每行的配置都多了个\r,因此是脚本编码的问题。

在ubuntu上执行sudo dos2unix? you_shell_name.sh,转换脚本格式,然后,

再次执行脚本,报错消失。

感谢:

Shell脚本处理文本换行问题

使用一个sed命令即可:

解释:

/import/ { ? 如果某行找到import ? 则执行后面大括号中的内容

:go; ?设置一个标签

//import/!{ ? ?查找/import ? 如果没找到则执行大括号中的内容

N; ? ?――再读取一行追加到模式空间

bgo;}} ――跳转到go标签

上面会循环一直将 ?从import 开始 ?到/import 结束的各行读到入模式空间

s/ //g; ?――删除模式空间中所有的换行符

p――打印模式空间内容,即将跨行的import变成1行。

shell 脚本命令太长,如何换行?

行尾加\

表示下一行和这一行是一个命令行,后面不能有注释、空格。

shell脚本可以换行么

可以,一般情况下是自动换行,如果用户手动的话输入\后可以换行继续一条命令

linux shell脚本换行问题

\不是换行,而是续行,就是说一行写不下了,下一行继续,而不是一个命令的结束

你说报java: command not found,跟\没有关系,错误的原因:

你没有装java

path没有设对,echo $PATH看一下java的执行文件在不在其中的一个目录,没有,加之

29人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册