久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux中shellcheck怎么用

154次閱讀
沒有評論

共計 3136 個字符,預計需要花費 8 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 linux 中 shellcheck 怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

shellcheck

shellcheck 就是這樣的一個工具。它可以在多種場景下使用,包括在線,命令行檢查,編輯器配置,下面逐一介紹。

在線使用

顧名思義,它提供了一個在線的檢查地址,https://www.shellcheck.net/,進入網址即可使用。

例如,你輸入你的腳本內容:

#!/bin/sh for n in {1..$RANDOM} do str=  if (( n % 3 == 0 )) then str= fizz  fi if [ $[n%5] == 0 ] then str= $strbuzz  fi if [[ ! $str ]] then str= $n  fi echo  $str  done

shell

它會給出錯誤提示或者建議:

Line 2: for n in {1..$RANDOM} ^-- SC2039: In POSIX sh, brace expansion is undefined. ^-- SC2039: In POSIX sh, RANDOM is undefined. Line 5: if (( n % 3 == 0 )) ^-- SC2039: In POSIX sh, standalone ((..)) is undefined. Line 9: if [ $[n%5] == 0 ] ^-- SC2039: In POSIX sh, $[..] in place of $((..)) is undefined. ^-- SC2007: Use $((..)) instead of deprecated $[..] ^-- SC2039: In POSIX sh, == in place of = is undefined. Line 11: str= $strbuzz  ^-- SC2154: strbuzz is referenced but not assigned. Line 13: if [[ ! $str ]] ^-- SC2039: In POSIX sh, [[ ]] is undefined.

怎么樣,是不是很給力,每個可能的錯誤都提示了。新手寫 shell 出現莫名的報錯時,可以嘗試使用奧。當然例子中很多并不是真的錯誤,而是某種寫法不符合 POSIX 標準,這種情況也應該避免。

命令行使用

命令行安裝也很簡單 (記得使用 root 權限),ubuntu 下:

$ apt-get install shellcheck

centos 下:

$ yum -y install epel-release

Fedora 下:

$ dnf install ShellCheck

使用方法也很簡單了:

$ shellcheck myscript.sh

舉個例子,下面的寫法是新手最容易出錯的地方之一:

// 來源:公眾號【編程珠璣】 // 作者:守望先生  #!/bin/bash if[ $# -eq 0 ] then echo  no para  else echo  $# para  fi exit 0

看運行報錯:

./test.sh: line 4: if[ 0 -eq 0 ]: command not found ./test.sh: line 5: syntax error near unexpected token `then  ./test.sh: line 5: `then

只是告訴你在 then 附近有語法問題,到底什么問題呢?我們用 shellcheck 看看:

$ shellcheck test.sh In test.sh line 4: if[ $# -eq 0 ] ^-- SC1069: You need a space before the [.

這么一看,就很清楚了,原來 [前面少了空格。

編輯器中使用

當然也可以把它安裝到你熟悉的編輯器中,雖然它們本身都有語法高亮的功能,但是并沒有直接的信息提示,安裝 shellcheck 類工具,達到編寫即提示的效果。

 Emacs, 可以使用 Flycheck.

 Sublime, 可以使用 SublimeLinter.

 Atom,可以使用 Linter.

 vim , 可以使用 ale 或者 syntastic

當然了,現代很多 IDE 都有這樣檢查功能,這里只說編輯器。

這里以 syntastic 為例,實際上它支持多種語言的語法檢查。

安裝過程:

1. 安裝 pathogen.vim

$ mkdir -p ~/.vim/autoload ~/.vim/bundle   \ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

并且在 vimrc 文件中配置以下內容:

execute pathogen#infect()

2. 安裝 Install syntastic

cd ~/.vim/bundle   \ git clone --depth=1 https://github.com/vim-syntastic/syntastic.git

3. 測試安裝情況

打開 vim,輸入以下內容

:Helptags

如果沒有報錯,說明安裝正常。

在 vimrc 中配置以下內容:

set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* let g:syntastic_always_populate_loc_list = 1 let g:syntastic_auto_loc_list = 1 let g:syntastic_check_on_open = 1

常用:

:Errors  顯示錯誤面板  :lnext  到下一個錯誤  :lprevious  到上一個錯誤 

更多安裝詳情也可以參考 https://github.com/vim-syntastic/syntastic。

以上是官網推薦的安裝方式,也可以在安裝了 Vundle(這是一種老舊的插件管理方式,你可以嘗試 vim-plug 等其他插件管理工具)的前提下,通過在配置文件中加入:

Plugin  scrooloose/syntastic

打開 vim 輸入:

:PluginInstall

即可安裝。

使用效果:

shell 檢查:

C 語言語法檢查:

實際上它可以支持幾乎所有常見編程語言的語法檢查。

不知道 vimrc 文件在哪里?

打開 vim,輸入:

:version

就可以看到啦:

 system vimrc file:  $VIM/vimrc  user vimrc file:  $HOME/.vimrc  2nd user vimrc file:  ~/.vim/vimrc  user exrc file:  $HOME/.exrc  system gvimrc file:  $VIM/gvimrc  user gvimrc file:  $HOME/.gvimrc  2nd user gvimrc file:  ~/.vim/gvimrc  system menu file:  $VIMRUNTIME/menu.vim

它們區別在于生效范圍不一樣,對于用戶的 vimrc,自然只是對特定用戶生效。

以上是“linux 中 shellcheck 怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計3136字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 察隅县| 潜江市| 乐东| 安化县| 宝山区| 黄骅市| 阳新县| 沁源县| 连江县| 远安县| 安岳县| 商洛市| 绥棱县| 翼城县| 肃宁县| 郁南县| 沈丘县| 宁德市| 博客| 丹江口市| 苏尼特右旗| 从江县| 商城县| 鸡西市| 陇南市| 泰顺县| 噶尔县| 唐山市| 澜沧| 松溪县| 原阳县| 共和县| 伊吾县| 义乌市| 集安市| 光泽县| 饶阳县| 黑龙江省| 广饶县| 彭泽县| 依兰县|