2015-05-27 16:13:11 web718 阅读数 529

在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。

分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。

使用Notepa++转换
编辑–》档案格式转换–》转换为unix格式

vi bin/stop.sh
:set ff=unix
:wq

2019-02-25 10:49:05 ch520my 阅读数 1125

       最近遇到个问题,将一个jar文件或sh文件传到服务器上乱码,通过“file 文件名”查看到其编码格式是gbk的,而使用locale命令查看LANG发现其编码是UTF8的,如下图:

此时我需要将文件的编码格式改成与服务器相同的,将gbk转换成utf8,可以使用命令:

iconv -f gbk -t utf8 test.sh > testNew.sh

将修改好编码格式的文件输出到testNew.sh文件中,vi testNew.sh,看到的文件正常

2018-02-24 14:10:44 Coder__CS 阅读数 7304

在windows下写好的shell脚本,放到linux上执行,往往会因为编码格式的问题存在兼容问题:

  -bash: ./lbs-circle-server.sh: /bin/sh^M: bad interpreter: No such file or directory

这是由于文件编码格式为windows doc,在vi命令模式中使用 :set ff 命令,可以看到改文件的格式为dos

方法一:使用vim修改文件format,把文件编码格式改成unix

vim命令:set ff=unix

方法二:直接使用dos2unix命令修改(前提是unix系统上装有此命令)

$ dos2unix test.sh   
dos2unix: converting file test.sh to UNIX format ...  
2013-01-05 12:56:40 liuwei890624 阅读数 376

查看文件编码
在Linux中查看文件编码可以通过以下几种方式:
1.在 Vim 中可以直接查看文件编码
:set fileencoding
即可显示文件编码格式。
如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照
fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

 

vimrc文件的设定:


  1 " タグファイル指定
  2 set tags=/usr/local/tags
  3
  4 " UTF-8対応
  5 set encoding=utf-8
  6 set fileencoding=utf-8:
  7 set fileencodings=utf-8,euc-jp,sjis,jis,ascii:
  8 set ambiwidth=double
  9
 10 " プラグイン&シンタックス
 11 filetype plugin indent on
 12 syntax enable
 13
 14 " 基本設定
 15 set nocompatible    " vi互換停止
 16 set expandtab       " タブ空白設定
 17 set tabstop=4       " タブ空白数
 18 set shiftwidth=4    " インデントスペース数
 19 set nu              " 行番号表示
 20 set showmode        " モード表示
 21 " set backspace=1     " autoindentと改行を削除可能
 22 set backspace=indent,eol,start
 23 set nowrap          " 折り返し禁止
 24 set autoindent
 25 "set list
 26 set smartcase
 27 set ruler
 28 set laststatus=2
 29
 30
 31 " タブと全角空白の表示
 32 set lcs=tab:>.
 33 hi JpSpace cterm=underline ctermfg=Blue guifg=Blue
 34 au BufRead,BufNew * match JpSpace / /
 35
 36 " ショートカット
 37 nnoremap <Space>. :<C-u>edit $MYVIMRC<Enter>
 38 nnoremap <Space>s. : <C-u>source $MYVIMRC<Enter>
 39 nnoremap ,l :call PHPLint()<Enter>
 40
 41 " PHPシンタックスチェック
 42 function PHPLint()
 43     let result = system( &ft . ' -l ' . bufname(""))
 44     echo result
 45 endfunction
 46
 47 " 拡張子の追加
 48 "autocmd BufNewFile,BufRead *.ctp set filetype=php
 49 set runtimepath=~tkunimoto/.vim,$VIMRUNTIME
 50 autocmd BufNewFile,BufRead *.ctp set filetype=htmlcake
 51

 

linux 系统编码

阅读数 1383

没有更多推荐了,返回首页