Articles of bash

Bash:运行一个可执行文件给出一个很好的退出状态

我想在Linux中运行一个可执行文件,不pipe它返回的退出状态,我想返回一个很好的退出状态。 (即没有错误) (这是因为我正在使用sh -ex ,即使一个(特定)命令失败,我也希望脚本保持运行。)

防止xargs因错误而退出

根据手册页,xargs将退出,如果其中一个执行行退出的错误为255: 如果任何命令的调用退出状态为255,xargs将立即停止,不会读取任何进一步的input。 发生这种情况时,stderr上会发出错误消息。 我怎样才能让xargs 不这样做呢? 我有一个1500行左右的批处理作业,我想运行,一次50行。 我发现它总是死在某一行,而不是完成这项工作。 不好! 一个更好的问题,描述我所要做的问题是: 我怎样才能运行一个1500行的批处理脚本,每次50行,这样它就不会中途退出这个工作,这样输出就被捕获到某种types的日志文件中了?

反斜杠在一个命令的开始

在安装RVM手册中,我看到很多以'\'开头的行: 用ruby安装RVM: $ \curl -L https://get.rvm.io | bash -s stable –ruby 我认为这只是错误的,但他们重复了很多次。 那么是什么原因?

sudo -i和sudo su有什么区别 –

命令sudo -i和sudo su -什么区别? 他们是一样的吗?

是否有像cron这样的实用程序,以后安排工作(但只有一次)?

我试图devise一个程序在发生某个(非周期性)事件时发送文本。 现在,我想要一个脚本来发现这个事件发生的时间,然后安排一个(类似于cron的)作业,在即将发生之前发送一个文本。 更具体的例子会是这样的: 脚本A运行并检测事件的下一次 脚本A使用? 安排脚本B是在$时间运行 在$时间,? 调用发送文本的脚本B. 问题是,事件可能在11天内的任意时间,只发生一次。 克朗似乎不适合这个 – 我不希望这个工作运行不止一次。 所以我猜(总之),是否有一个实用程序,提供了一个不是周期性的脚本的延迟执行?

在ptslogin的`last`输出中缺lessIP信息的原因是什么?

我有五个CentOS 6 linux系统在工作,遇到一个相当奇怪的问题,似乎只发生在我所有的linux系统上的userid …这是我从last命令中除外的问题的例子。 .. mpenning pts/19 Fri Nov 16 10:32 – 10:35 (00:03) mpenning pts/17 Fri Nov 16 10:21 – 10:42 (00:21) bill pts/15 sol-bill.local Fri Nov 16 10:19 – 10:36 (00:16) mpenning pts/1 192.0.2.91 Fri Nov 16 10:17 – 10:49 (12+00:31) kkim14 pts/14 192.0.2.225 Thu Nov 15 18:02 – 15:17 (4+21:15) gduarte pts/10 […]

Shell命令使用pipe道时速度较慢,中间文件速度较快

有没有人了解这种处理时间,使用中间文件或使用pipe道时的巨大差异? 我使用新鲜的debian挤压服务器上的标准工具将tiff转换为pdf。 一个标准的做法是首先转换为ps。 无pipe道: root@web5:~# time tiff2ps test.tif > test.ps real 0m0.860s user 0m0.744s sys 0m0.112s root@web5:~# time ps2pdf13 -sPAPERSIZE=a4 test.ps > test.pdf real 0m0.667s user 0m0.612s sys 0m0.060s 用pipe道: root@web5:~# time tiff2ps test.tif | ps2pdf13 -sPAPERSIZE=a4 – > test.pdf real 1m6.098s user 0m15.861s sys 0m50.9 在最后一个命令中,gs进程始终处于100%。 更新 : 这是ps世代的strace输出: root@web5:~# strace tiff2ps test.tif > […]

启动Unix屏幕,运行命令,分离

如何使用screen来启动一个新的会话,并在该会话中运行一个命令而不杀死该会话? screen -S myScreenName runSomething 我试过上面的命令,它说 [screen is terminating] 它运行的命令,然后杀死屏幕? 我希望在运行命令而不是杀死它之后将屏幕分离。 如何做到这一点?

如何为Debian中的所有用户设置PATH?

我有一个Debian Lenny服务器,我希望www-data用户在其PATH中包含/usr/local/zend/bin ,因此它可以在cron中执行一个脚本作为www-data 。 如何将/usr/local/zend/bin到PATH中,以便www-data可以执行/usr/local/zend/bin ?

你如何在heredoc中转义人物?

我正在用bash脚本试图阻止它试图replace我的heredoc中的variables。 如何设置heredoc要么A)转义variables名称,而不是parsing它们或B)返回整个string不变? cat > /etc/nginx/sites-available/default_php <<END server { listen 80 default; server_name _; root /var/www/$host; <— $host is a problem child } END 因为,当我完成注入到一个文件,我留下这个: server { listen 80 default; server_name _; root /var/www/; }