vim demo.sh
vim 创建出来的,改变权限就能使用
windows 上,sublime 创建的 sh 脚本,utf-8 无 bom 格式。
结果同样的代码,硬是显示 No such file or directory
1
ysc3839 2019-10-29 14:24:28 +08:00 1
代码是什么?运行环境是什么?什么情况下出现的 No such file or directory ?
|
2
hasdream 2019-10-29 14:33:17 +08:00 1
dos2unix 转换下脚本
|
3
airfling 2019-10-29 14:36:22 +08:00 1
windows 下的是 dos 格式,需要转成 unix 格式,具体操作就是把换行符由\r\n 换成\r
|
4
chengyiqun 2019-10-29 14:58:17 +08:00 1
@airfling linux 上是\n 吧, 楼主是 unix 还是 linux?
|
6
CallMeReznov 2019-10-29 15:20:21 +08:00 1
notepad++ editplus
|
7
funky 2019-10-29 15:38:43 +08:00 1
set ff=unix
|
8
ipwx 2019-10-29 15:51:31 +08:00 1
.sh 执行要看第一行决定解释器,比如 #!/bin/bash
然而,如果行尾有 \r,那么它也会被认为是解释器文件名的一部分,就变成了 #!/bin/bash\r 然后 Windows 编辑器默认换行符是 \r\n 不是 \n |
9
Hopetree 2019-10-29 16:11:03 +08:00 1
常识问题吧,Windows 上面写的 sh 放到 linux 执行前都要转换成 unix 格式
|
10
Latin 2019-10-29 16:27:04 +08:00 1
Linux Vim
Command ``` set ff=unix ``` |
13
wnpllrzodiac 2019-10-29 18:48:10 +08:00 via Android 1
@chengyiqun 苹果是 \r 懂这个的都是老法师。。。
|
14
Osk 2019-10-29 18:55:38 +08:00 via Android 1
@orbwalker sublime 状态栏上好像有切换换行符的按钮,windows 上默认 Windows 换行符,设置里可以改
|
15
lxk11153 2019-10-29 19:18:46 +08:00 1
|
17
superrichman 2019-10-29 19:23:23 +08:00 1
Sublime Text 配置加一行, 默认用 unix 格式换行
"default_line_ending": "unix", |
18
ps1aniuge 2019-10-30 19:18:53 +08:00 1
用 win,Linux 通用的 powershell,
没有换行问题, 没有#!/bin/bash 问题。 没有乱码问题。 unicode:全中文变量名,函数名,参数名,中文脚本名,等。 .ps1 脚本带有 bom 头,支持 Linux+vi 编辑。 |