加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在vim中编辑bash脚本,<<<括号会导致颜色损坏

发布时间:2020-12-16 01:50:43 所属栏目:安全 来源:网络整理
导读:我继承了几个使用以下语法从一个字符串读入数组的bash脚本: read -a arr $line 但是,这会导致vim中的颜色格式化.有人可以建议快速修复吗? 更新: 忽略脚本的内容,但请注意’字符(即echo语句为紫色): 解决方法 如果缺少#!/ bin / bash shebang行,就会发生
我继承了几个使用以下语法从一个字符串读入数组的bash脚本:

read -a arr <<<$line

但是,这会导致vim中的颜色格式化.有人可以建议快速修复吗?

更新:

忽略脚本的内容,但请注意’<<<<<<<<<<<<<字符(即echo语句为紫色):

enter image description here

解决方法

如果缺少#!/ bin / bash shebang行,就会发生这种情况. Vim将脚本解释为plain sh而不是bash. <<<是一种打击主义.

来自sh.syntax:

" trying to answer the question: which shell is /bin/sh,really?
" If the user has not specified any of g:is_kornshell,g:is_bash,g:is_posix,g:is_sh,then guess.
if !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh")
 let s:shell = ""
 if executable("/bin/sh")
  let s:shell = resolve("/bin/sh")
 elseif executable("/usr/bin/sh")
  let s:shell = resolve("/usr/bin/sh")
 endif
 if     s:shell =~ 'bash$'
  let g:is_bash= 1
 elseif s:shell =~ 'ksh$'
  let g:is_kornshell = 1
 elseif s:shell =~ 'dash$'
  let g:is_posix = 1
 endif
 unlet s:shell
endif

" Here Strings: {{{1
" =============
" available for: bash; ksh (really should be ksh93 only) but not if its a posix
if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("g:is_posix"))
 syn match shRedir "<<<"        skipwhite       nextgroup=shCmdParenRegion
endif

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读