Articles of bash

在安装脚本中检测失败

我写了一个安装脚本来安装我的首选程序和设置后,我有一个新的服务器。 apt-get install git git clone http://[email protected] .vim ln -s .vimrc .vim/vimrc … 但是如果在安装过程中发生错误,我怎么能打断安装脚本,并logging错误? 例如,如果github服务器closures了,创build一个到不存在的vimrc的符号链接显然是没有用的。 (或者你有更好的方法来初始化服务器?)

我如何获得一个stream程的退出代码,以便开球?

我有这样的bash代码(Mac OS X): foo.sh | tee foo.log echo $? 问题是$? 包含tee的退出代码而不是foo.sh的退出代码。 我如何获得foo.sh的退出码?

我如何使用{}运算符在执行中查找执行

我试过这个bash命令: find /var/www/ -path '*wp-admin/index.php' -exec mv {} $(dirname {})/index_disabled 但是第二个{}不被执行。 它只会./index_disabled 。 如何在执行命令中使用find的参数两次?

用“curl |”来远程执行脚本 bash“反馈

我正在使用很多这样的命令的平台: ssh [email protected] 'curl http://some_server/script.sh | bash' ssh [email protected] 'curl http://some_server/script.sh | bash' 这对于远程执行脚本来说是非常干净和方便的,但是,我还是看不到脚本的输出/退出代码。 任何人都可以弄清楚一些事情,以确保脚本已经正确执行(从主机启动ssh的angular度来看)。

覆盖特定用户的二进制文件path

我的问题似乎是微不足道的,但我没有设法find任何有用的互联网。 我有一个二进制 /urs/bin/binary 但是已经过时了,例如在一些安装上可以使用更新的版本 /mount/new_version/binary 有一个bash脚本以类似的forms调用这个二进制文件 binary -doSomething 我需要这个脚本来调用新版本的二进制文件,而不是旧的,但我没有权限改变这个脚本。 是以某种方式覆盖它的path,但只为我的用户? 任何帮助,将不胜感激。

Shell脚本和正则expression式:哪一个更好地匹配数字,]或?

如标题所示,哪一个更适合匹配数字[[:digit:]]或[0-9] ? 我正在使用bash shell 谢谢 :)

绝对符号链接parsingpwd

我正坐在一个Linuxshell前面。 我想做一些像pwd ,除了我想要一个绝对的答案,即我想任何符号链接被parsing为他们的真正path。 我怎样才能做到这一点?

服务器Bash行缠绕在文本和错误的地方

这是一个很难解释的问题,当使用bash shell连接到我的一台服务器时,在任何用户的线下都是坏的,并且有各种各样的问题。 一次我详细的截图如下: 我遇到的其他问题包括nano对于我所在的行和/或字母非常困惑,如同在nano中键入相同的消息所示: 这些问题只发生在我之前提到的运行CentOs的服务器之一时。 你知道这是为什么发生,我能做些什么来解决它? 在其他服务器上的消息工作正常! 谢谢你的时间, 请求命令的输出: 服务器无法正常工作: 工作服务器: 它可能是非工作服务器上的自定义提示? 在.bashrc中 PS1='\e[1;32m\u@\h\e[m:\e[1;34m\w\e[m$ ' 评论这似乎解决了这个问题。 谷歌说,如果你不符合这些规则,就可能发生换行错误 use the \[ escape to begin a sequence of non-printing characters, and the \] escape to signal the end of such a sequence 我不确定这会适合我的提示吗?

用于监视磁盘空间,端口等的轻量级脚本?

如果我想监视一些我不是主要维护者的机器(也就是说,我没有安装软件包的权限),有没有像Nagios这样的轻量级替代品? 我正在寻找对Linux服务器和服务(磁盘空间,Web服务器,可能是CPU使用情况等)进行基本监控的脚本(bash,Perl,PHP等),并在必要时发送警报。 我发现了一些 一次性 脚本 ,但是我感到惊讶的是没有更全面的东西。

Brew安装imagemagickcurl失败

试图在OS X Mountain Lion上通过brew安装imagemagick时,出现以下错误。 这似乎是一个curl错误 – 因此,为什么它在SF而不是另一个堆栈交换站点。 brew install imagemagick ==> Installing imagemagick dependency: pkg-config ==> Downloading http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz curl: (7) couldn't connect to host Error: Download failed: http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz 运行brew install imagemagick命令时可以select另一个下载位置吗? 这是一个已知的问题,我寻找类似的问题,但似乎没有一样的。