
Tengo la intención de escribir un script de shell (si se requieren detalles específicos, se ejecutará en Zsh) que determinará el último parche de Vim ejecutando:
git pull origin master
vernew=$(git describe --tags | sed 's/^v//;s/-/./g')
con una copia local del repositorio git de Vim, compárelo con la versión de Vim que tengo instalada actualmente y si las dos son diferentes, modificará el nivel de parche definido en el archivo de especificaciones que tengo en mi Open Build Service (OBS).repositorio vim. Para poder hacer esto necesito saber cómo definir una variable como igual a la versión de Vim actualmente instalada. Definiéndolo como:
verold=$(vim --version)
no es una opción ya que ejecutar vim --version
para mí, al menos, devuelve:
VIM - Vi IMproved 7.4 (2013 Aug 10)
Included patches: 1-1304
Compiled by 'http://www.opensuse.org/'
Huge version without GUI. Features included (+) or not (-):
+acl +farsi +mouse_netterm +tag_binary
+arabic +file_in_path +mouse_sgr +tag_old_static
+autocmd +find_in_path -mouse_sysmouse -tag_any_white
-balloon_eval +float +mouse_urxvt -tcl
-browse +folding +mouse_xterm +terminfo
++builtin_terms -footer +multi_byte +termresponse
+byte_offset +fork() +multi_lang +textobjects
+channel +gettext -mzscheme +title
+cindent -hangul_input +netbeans_intg -toolbar
+clientserver +iconv +path_extra +user_commands
+clipboard +insert_expand +perl/dyn +vertsplit
+cmdline_compl +job +persistent_undo +virtualedit
+cmdline_hist +jumplist +postscript +visual
+cmdline_info +keymap +printer +visualextra
+comments +langmap +profile +viminfo
+conceal +libcall +python/dyn +vreplace
+cryptv +linebreak +python3/dyn +wildignore
+cscope +lispindent +quickfix +wildmenu
+cursorbind +listcmds +reltime +windows
+cursorshape +localmap +rightleft +writebackup
+dialog_con +lua/dyn +ruby/dyn +X11
+diff +menu +scrollbind +xfontset
+digraphs +mksession +signs -xim
-dnd +modify_fname +smartindent +xsmp_interact
-ebcdic +mouse +sniff +xterm_clipboard
+emacs_tags -mouseshape +startuptime -xterm_save
+eval +mouse_dec +statusline -xpm
+ex_extra -mouse_gpm -sun_workshop
+extra_search -mouse_jsbterm +syntax
system vimrc file: "/etc/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/etc"
f-b for $VIMRUNTIME: "/usr/share/vim/current"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=1 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -Wall -pipe -fno-strict-aliasing
Linking: gcc -L. -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.22.0/x86_64-linux-thread-multi/CORE -L/usr/local/lib -Wl,--as-needed -o vim -lSM -lICE -lXt -lX11 -lSM -lICE -lm -lnsl -ltinfo -lacl -lattr -ldl -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.22.0/x86_64-linux-thread-multi/CORE -L/usr/local/lib64 -fstack-protector-strong -L/usr/lib/perl5/5.22.0/x86_64-linux-thread-multi/CORE -lperl -lm -ldl -lcrypt -lpthread
la segunda línea de este resultado contiene lo que me interesa, el nivel de parche. Pero no sé cómo definirlo verold
como igual solo al nivel de parche. La versión completa (es decir, 7.4.1304) también es un verold
valor aceptable, si sabes cómo darme este valor.
Respuesta1
verold=$(vim --version |sed -n 's/^Included patches:\s1-*//p')