Bash如何将stderr捕获到变量?
我想在我的bash脚本中做这样的事情
sh -c path/myExcecutable-bin 2>&1 =MYVARIABLE
Run Code Online (Sandbox Code Playgroud)
如何将stderror输出发送给变量?
所以,我有以下结构:
.
..
a.png
b.png
c.png
Run Code Online (Sandbox Code Playgroud)
我跑了一个命令来调整它们的大小
ls | xargs -I xx convert xx -resize xx.jpg
Run Code Online (Sandbox Code Playgroud)
现在我的目录看起来像这样
.
..
a.png.jpg
a.png
b.png.jpg
b.png
c.png.jpg
c.png
Run Code Online (Sandbox Code Playgroud)
第一个问题是,我如何重命名文件,以便我可以只有一个扩展名.不是两个.(基本上,我该如何清理原来的错误)?
第二个问题是,在将来,使用xargs,如何将文件的扩展名更改为第二个命令?
简单地说,我知道你可以做ctrl+ v+ tab在bash语句中插入一个物理真正的制表符.但我如何为iTerm做同样的事情呢?
可以说我有两个接口A和接口B:
public interface A {
public int data();
}
public interface B {
public char data();
}
Run Code Online (Sandbox Code Playgroud)
接口A有一个方法public int data(),接口B有一个方法public char data().
当我在某个C类中实现接口A和B时,编译器给出了一个错误.这是java中的一个缺陷吗?我认为这是我们不允许扩展多个类的主要原因之一,那么当这个问题仍然存在时,为什么我们允许实现多个接口呢?
我有一个示例[文件],我想抓住第3-6行和第11 - 13行,然后用一行命令排序并保存为3_6-11_13.这些是我到目前为止使用的命令,但我没有得到所需的输出:
sed -n '/3/,/6/p'/11/,/13/p file_1 > file_2 | sort -k 2 > file_2 & sed -n 3,6,11,13p file_1 > file_2 | sort -k 2 file_2.
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来缩短这一点.我曾经考虑过使用awk,但到目前为止我一直在使用sed.
我想在 bash heredoc 中突出显示语法。此外,我希望在 heredoc 中突出显示 bash 变量取消引用和命令替换。
使用这些说明作为起点,我能够通过检查sh.vim添加变量取消引用。我想您可以以类似的方式完成命令替换。
let s:bcs = b:current_syntax
unlet b:current_syntax
syntax include @YAML syntax/yaml.vim
syntax region hereDocYAML matchgroup=Statement start=/<<-\?\s*\z(YML\)/ end=/^\s*\z1/ contains=@YAML,hereDocDeref,hereDocDerefSimple
syn match hereDocDerefSimple "\$\%(\h\w*\|\d\)"
syn region hereDocDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray
hi def link hereDocDeref PreProc
hi def link hereDocDerefSimple PreProc
Run Code Online (Sandbox Code Playgroud)
我的问题是,这似乎并没有工作,任何类型的块(if,function,for等)。例如:
我唯一知道的是,这不是缩进问题。更改缩进没有效果,在块外使用缩进可以正常工作。
vim bash syntax-highlighting heredoc vim-syntax-highlighting
我试图找到调用vi/vim编辑器的当前用户的用户名/全名.
:autocmd bufnewfile *.sh exe "1," . 10 . "g/AUTHOR :.*/s//AUTHOR : " .getlogin()
Run Code Online (Sandbox Code Playgroud)
我尝试使用getlogin(),getuser(),getpwnam()但没有任何效果.
我需要从文件中删除行,而行上的内容以制表符分隔. - 我需要首先使用tab分割线,然后计算第3段的长度. - 如果长度大于1000,我将从文件中删除该行.
我想使用sed和awk,但很难快速启动.有人可以帮忙吗?:)
非常感谢提前!