当前位置:  开发笔记 > 编程语言 > 正文

./configure:/ bin/sh ^ M:糟糕的翻译

如何解决《./configure:/bin/sh^M:糟糕的翻译》经验,为你挑选了9个好方法。

我一直在尝试在我的12系统上安装lpng142.对我来说似乎是一个问题.我收到这个错误

[root@localhost lpng142]# ./configure
bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory
[root@localhost lpng142]# 

我该如何解决?该/etc/fstab文件中:

#
# /etc/fstab
# Created by anaconda on Wed May 26 18:12:05 2010
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=ce67cf79-22c3-45d4-8374-bd0075617cc8 /boot                   ext4    
defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

小智.. 727

要修复,请使用vi或vim打开脚本并输入vi命令模式(key Esc),然后键入:

:set fileformat=unix

最后保存它

:x! 要么 :wq!



1> 小智..:

要修复,请使用vi或vim打开脚本并输入vi命令模式(key Esc),然后键入:

:set fileformat=unix

最后保存它

:x! 要么 :wq!


`:set ff = unix`也适用:)
为什么用"!"保存?仅在您要放弃更改时才使用它,但实际情况并非如此.如果保存失败,那么也许你做错了什么.
救了我一些宝贵的时间!
我对多个文件有同样的问题,如何将其应用于目录树?我是否需要转到每个目录并在vi中逐个打开文件并执行":set fileformat = unix"?请帮忙.
为我工作!谢谢!:)

2> Richard..:

看起来你有一个dos行结束文件.线索是^M.

您需要使用Unix行结尾重新保存文件.

您可能有一个dos2unix命令行实用程序,它也将为您执行此操作.


如果您尝试构建的项目有许多需要转换的脚本(Qt就是这种情况),递归应用dos2unix可能是个好主意.从顶级目录运行"find.-type f | xargs dos2unix"将为您完成.
`dos2unix`修复了它... ps:`yum install dos2unix`如果需要的话
优秀 !对于Sublime Text 3用户,可通过选择View - > Line Endings - > Unix来解决此问题.
Freakin Qt配置文件(在这里从源码构建)有这个垃圾.*叹气*真正有用的工具,可以节省大量的手工劳动.然后再次为什么在下载ZIP文件名称中"随处"附带的库的源代码时应该这样做是超出我的.

3> Somaiah Kumb..:

或者,如果您想使用脚本执行此操作:

sed -i 's/\r//' filename


+1,在debian linux上为我工作
这很简单,但只适用于_GNU_`sed`.使用BSD/macOS`sed`,你需要使用`sed -i''$'s /\r //''filename`(来自`bash`),或者稍微强一些:`sed -i''$' s /\r $ //'filename`
不要在CentOS上工作

4> Konerak..:

您的配置文件包含CRLF行结尾(窗口样式)而不是简单的LF行结尾(unix样式).你是否使用Windows的FTP模式ASCII传输它?

您可以使用

dos2unix configure

解决这个问题,或者在vi中打开它并用:%s/^M//g;它们全部替换它们(使用CTRL+ V,CTRL+ M得到^ M)


不,我确实使用linux下载.gz文件.不知道CRLF是如何到达那里的.
vim搜索并替换更容易输入:`%s /\r $ // g`

5> 小智..:

您可以使用以下命令进行修复

cat file_name.sh | tr -d '\r' > file_name.sh.new


这在MacOS X 10.11上也可以正常工作

6> lakshmikanda..:

如果你找不到运行命令,

CentOS的:

# yum install dos2unix*

# dos2unix filename.sh
dos2unix: converting file filename.sh to Unix format ...

Ubuntu/Debian:

# apt-get install dos2unix



7> URB..:

当您从Windows编辑文件并尝试从某些基于unix的计算机执行该文件时,通常会发生这种情况.

Linux论坛上提供的解决方案为我工作(很多次):

perl -i -pe's/\r$//;' 

希望这可以帮助.

PS:你需要在你的unix/linux机器上安装perl.



8> Vern Jensen..:

如果您使用的是OS X,则可以通过打开文件并选择“

查看->文本->行尾-> Unix

菜单项,然后点击保存。这是针对XCode 3.x的。XCode 4中可能类似。



9> br3nt..:

由于pwc101就评论这个职位,这个命令在Linux的卡利工作。

sed -i s/{ctrl+v}{ctrl+m}// {filename}

确保替换括号中的位{}。即{ctrl+m}意味着按Ctrl键和M键一起。

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有