首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

-- 关于 shell 脚本在 windows 上开发问题

  •  
  •   orbwalker · 40 天前 · 1173 次点击
    这是一个创建于 40 天前的主题,其中的信息可能已经有所发展或是发生改变。
    vim demo.sh

    vim 创建出来的,改变权限就能使用

    windows 上,sublime 创建的 sh 脚本,utf-8 无 bom 格式。

    结果同样的代码,硬是显示 No such file or directory

    18 回复  |  直到 2019-10-30 19:18:53 +08:00
        1
    ysc3839   39 天前   ♥ 1
    代码是什么?运行环境是什么?什么情况下出现的 No such file or directory ?
        2
    hasdream   39 天前   ♥ 1
    dos2unix 转换下脚本
        3
    airfling   39 天前   ♥ 1
    windows 下的是 dos 格式,需要转成 unix 格式,具体操作就是把换行符由\r\n 换成\r
        4
    chengyiqun   39 天前   ♥ 1
    @airfling linux 上是\n 吧, 楼主是 unix 还是 linux?
        5
    wangyzj   39 天前   ♥ 1
    @hasdream +1
    同时二进制传输 ftp
        6
    CallMeReznov   39 天前   ♥ 1
    notepad++ editplus
        7
    funky   39 天前   ♥ 1
    set ff=unix
        8
    ipwx   39 天前   ♥ 1
    .sh 执行要看第一行决定解释器,比如 #!/bin/bash

    然而,如果行尾有 \r,那么它也会被认为是解释器文件名的一部分,就变成了 #!/bin/bash\r

    然后 Windows 编辑器默认换行符是 \r\n 不是 \n
        9
    Hopetree   39 天前   ♥ 1
    常识问题吧,Windows 上面写的 sh 放到 linux 执行前都要转换成 unix 格式
        10
    Latin   39 天前   ♥ 1
    Linux Vim

    Command
    ```
    set ff=unix
    ```
        11
    orbwalker   39 天前
    @ipwx </br>
    谢谢,讲的非常清楚。那 sublime 怎么能将\r\n 变成默认\n ?
        12
    jdhao   39 天前 via Android   ♥ 1
    @orbwalker 网上搜一下秘籍不会问了
        13
    wnpllrzodiac   39 天前 via Android   ♥ 1
    @chengyiqun 苹果是 \r 懂这个的都是老法师。。。
        14
    Osk   39 天前 via Android   ♥ 1
    @orbwalker sublime 状态栏上好像有切换换行符的按钮,windows 上默认 Windows 换行符,设置里可以改
        15
    lxk11153   39 天前   ♥ 1
    @orbwalker #11
    第一种: 菜单 view 里面( 这种问题,把菜单刷刷刷过一遍基本就解决了
    第二种: 设置里添加 "show_line_endings": true 这样就会显示在状态栏了
        16
    lxk11153   39 天前   ♥ 1
    是不是可以 bash x.sh 这样执行
        17
    superrichman   39 天前   ♥ 1
    Sublime Text 配置加一行, 默认用 unix 格式换行
    "default_line_ending": "unix",
        18
    ps1aniuge   38 天前   ♥ 1
    用 win,Linux 通用的 powershell,

    没有换行问题,
    没有#!/bin/bash 问题。
    没有乱码问题。
    unicode:全中文变量名,函数名,参数名,中文脚本名,等。
    .ps1 脚本带有 bom 头,支持 Linux+vi 编辑。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2229 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 06:21 · PVG 14:21 · LAX 22:21 · JFK 01:21
    ♥ Do have faith in what you're doing.