美文网首页
Linux 下关于 .sh文件运行的问题

Linux 下关于 .sh文件运行的问题

作者: CW不要无聊的风格 | 来源:发表于2020-03-21 11:51 被阅读0次

    Date: 2020/03/21

    Author: CW

    前几天对C++下实现的 NMS(非极大值抑制)进行编译时,需要运行 make.sh 文件,出现了一些小问题,问题虽小,但为了日后能够不被这些小鸡毛蒜皮的杂事浪费人生,特在此进行记录,作为问题手册。


    运行方式

        以当前目录下文件名为 make.sh 为例:

            i). ./make.sh

            ii). sh make.sh


    可能出现的问题

        还是以当前目录下文件名为 make.sh 为例:

            i). -bash: ./make.sh: Permission denied

                在linux终端输入 ls -al,可以看到形如 -rwx-r--r-- (一共10个参数)的结果,其中 r、w、x 分别代表可读、可写、可执行第2-4个参数代表 user 权限,第 5-7 个参数代表 group 权限,最后的第 8-10 个参数代表 others 权限,而第1个参数和权限无关。

                如果该问题发生了,那么正常情况下,可以看到 make.sh 对应的结果应该没有执行权限。于是,解决方式之一是输入 chmod 777 make.sh 提高权限,使得所有人都对该文件拥有读写和执行权限(rwx 占3位,若拥有所有权限则是2^3 - 1 = 7,每个7分别代表user、group、others)。

            ii). /usr/bin/env: "bash\r": No such file or directory

                通常是由于文件中多了 \r 这个字符,在linux终端下,输出 \r 会什么都不显示,只是把光标移到行首。这样,文件中第一行是 /usr/bin/env bash,接着遇到 \r 后,光标就会被移到行首。

                解决方式之一是用 vi 打开文件,重新设置下文件格式:

                    1). vi make.sh

                    2). :set ff,然后回车;

                    3). :set ff=unix;

                    4). :wq!

                注意以上2)、3)、4)均有冒号

        

    相关文章

      网友评论

          本文标题:Linux 下关于 .sh文件运行的问题

          本文链接:https://www.haomeiwen.com/subject/ktlyyhtx.html