草庐IT

bash-trap

全部标签

linux - bash 陷阱 : How to Get Line Number of a Subprocess with Non-Zero Status

对于Bash程序:1#!/bin/bash23trapinfo()4{5echo"===TrapInfo:Status=$?LINENO=$@A=$A"6}78main()9{10trap'trapinfo$LINENO--${BASH_LINENO[*]}'ERR1112set-e13set-E14set-oerrtrace15shopt-sextdebug1617local-gA=11819#false#Ifuncommented,LINENOwouldbe1920(exit73)#LINENOis9.HowcanIget20instead?2122A=223}2425main输出

linux - bash 陷阱 : How to Get Line Number of a Subprocess with Non-Zero Status

对于Bash程序:1#!/bin/bash23trapinfo()4{5echo"===TrapInfo:Status=$?LINENO=$@A=$A"6}78main()9{10trap'trapinfo$LINENO--${BASH_LINENO[*]}'ERR1112set-e13set-E14set-oerrtrace15shopt-sextdebug1617local-gA=11819#false#Ifuncommented,LINENOwouldbe1920(exit73)#LINENOis9.HowcanIget20instead?2122A=223}2425main输出

linux - 自定义 bash 完成的提示

我正在开发自定义bash完成命令以从调度系统(LSF、PBS、SLURM)捕获作业ID。我已经有了基本的功能,但我现在想用我在运行zsh时看到的“提示”来扩展它。例如,当我在下面的grep示例中按TAB键时,我得到:grep---after-context-A--specifylinesoftrailingcontext--basic-regexp-G--usebasicregularexpression--before-context-B--specifylinesofleadingcontext...--之后的第三列是我想添加到我自己的bash完成中的内容。它的正确技术术语是什么?

linux - 自定义 bash 完成的提示

我正在开发自定义bash完成命令以从调度系统(LSF、PBS、SLURM)捕获作业ID。我已经有了基本的功能,但我现在想用我在运行zsh时看到的“提示”来扩展它。例如,当我在下面的grep示例中按TAB键时,我得到:grep---after-context-A--specifylinesoftrailingcontext--basic-regexp-G--usebasicregularexpression--before-context-B--specifylinesofleadingcontext...--之后的第三列是我想添加到我自己的bash完成中的内容。它的正确技术术语是什么?

linux - bash、ksh、tcsh 和 zsh 之间的区别

考虑以下shell代码:unsetfooecho"${foo-'}'}"结果取决于使用的shell:庆典:'}'ksh:''}tcsh:缺少}。zsh:''}哪些shell的行为符合POSIX标准? 最佳答案 一个POSIX兼容的shell应该输出:''} 关于linux-bash、ksh、tcsh和zsh之间的区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/46951889

linux - bash、ksh、tcsh 和 zsh 之间的区别

考虑以下shell代码:unsetfooecho"${foo-'}'}"结果取决于使用的shell:庆典:'}'ksh:''}tcsh:缺少}。zsh:''}哪些shell的行为符合POSIX标准? 最佳答案 一个POSIX兼容的shell应该输出:''} 关于linux-bash、ksh、tcsh和zsh之间的区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/46951889

linux - 为什么反引号中的嵌套引号在 bash 中有效?

更准确地说,为什么"`command"$variable"`"将外部引号视为包含内部引号,而不是将变量扩展到任何引号之外?我用来测试它的确切命令类似于另一个stackoverflow问题中提出的关于使用命令替换时正确引用方法的示例:fileName="somepathwith/spaces"echo"`dirname"$fileName"`"它正确地回应了“一些路径”,而不是因为无效的参数数量而提示。我读了Bash的手册页,它在“EXPANSION”一章的“CommandSubstitution”一节中指出,新式$()替换保留了括号之间任何字符的含义,但是,关于反引号,它只提到反斜杠以

linux - 为什么反引号中的嵌套引号在 bash 中有效?

更准确地说,为什么"`command"$variable"`"将外部引号视为包含内部引号,而不是将变量扩展到任何引号之外?我用来测试它的确切命令类似于另一个stackoverflow问题中提出的关于使用命令替换时正确引用方法的示例:fileName="somepathwith/spaces"echo"`dirname"$fileName"`"它正确地回应了“一些路径”,而不是因为无效的参数数量而提示。我读了Bash的手册页,它在“EXPANSION”一章的“CommandSubstitution”一节中指出,新式$()替换保留了括号之间任何字符的含义,但是,关于反引号,它只提到反斜杠以

linux - 我如何以另一个用户的 .bash_profile 而不是当前用户的身份执行命令?

我想在启动脚本(rc.local)中以非根用户身份运行命令。我要执行的命令实际上是非root用户的.bash_profile中的一个别名。我试过用su-myuser-caliased_cmd但这行不通。如果我只是输入su-myuser#waitforlogin...aliased_cmd它工作正常,但显然这在实际脚本中是不合适的。当然,我可以将我想使用的别名和函数复制到实际的rc.local文件中,但这看起来有点傻......也许有一个我不知道的选项或使用sudo的方法这个? 最佳答案 获取配置文件后,包括以下内容shopt-sex

linux - 我如何以另一个用户的 .bash_profile 而不是当前用户的身份执行命令?

我想在启动脚本(rc.local)中以非根用户身份运行命令。我要执行的命令实际上是非root用户的.bash_profile中的一个别名。我试过用su-myuser-caliased_cmd但这行不通。如果我只是输入su-myuser#waitforlogin...aliased_cmd它工作正常,但显然这在实际脚本中是不合适的。当然,我可以将我想使用的别名和函数复制到实际的rc.local文件中,但这看起来有点傻......也许有一个我不知道的选项或使用sudo的方法这个? 最佳答案 获取配置文件后,包括以下内容shopt-sex