cd /var/www/path/to/folder git pull
当我运行它我得到
: No such file or directorywww/path/to/folder ' is not a git command. See 'git --help'. Did you mean this? pull
任何想法为什么bash得到一个截断版本的命令?
如何终止与sudo运行的进程? 按Ctrl + C做,但不杀
使用Bash的Netcat TCP编程
为什么我的布尔testing在bash中切换?
从包含ANSI转义属性的gitlab-runner输出parsing标记值
可以'find'或任何其他工具search宽度优先的文件?
在Linux Ubuntu上将jar文件作为守护程序运行
在bash中使用awkvariables
Linux命令variablesreplace。 帮助表示赞赏
你有回车(Windows文本文件行尾)在你的bash脚本。 删除它们。
bash文件应该看起来像这样在hexdump -C :
00000000 63 64 20 2f 76 61 72 2f 77 77 77 2f 70 61 74 68 |cd /var/www/path| 00000010 2f 74 6f 2f 66 6f 6c 64 65 72 0a 67 69 74 20 70 |/to/folder.git p| 00000020 75 6c 6c 0a |ull.| 00000024
但你的看起来像这样:
00000000 63 64 20 2f 76 61 72 2f 77 77 77 2f 70 61 74 68 |cd /var/www/path| 00000010 2f 74 6f 2f 66 6f 6c 64 65 72 0d 0a 67 69 74 20 |/to/folder..git | 00000020 70 75 6c 6c 0d 0a |pull..|
注意在0a s(十六进制0A =十进制10 = ASCII换行,POSIX n ,这是什么bash对待作为结束的额外的0D的(十六进制0D =十进制13 = ASCII回车,POSIX r )一条线)。
回车不是在bash中的空格,所以它被视为文件名和git命令的一部分。 打印时,它将光标移动到行的开头,这就是为什么你的输出看起来像这样。 它打印的东西像"foo.bash: line 1: cd: /www/path/to/folderr: No such file or directory" ,但r使光标移动到行首并覆盖第一个部分消息与": No such file or directory"部分。
有一个名为dos2unix的程序,您可以使用该文件来删除回车:
dos2unix filename >newfilename
或者你可以使用tr命令:
tr -d $'r' <filename >newfilename
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。