Tag: bash

用多个命令作为参数的xargs

cat a.txt | xargs -I % echo % 在上面的例子中,xargs将echo %作为命令参数。 但在某些情况下,我需要多个命令来处理,而不是一个,例如: cat a.txt | xargs -I % {command1; command2; … } 但是xargs不接受这种forms。 我知道的一个解决scheme是我可以定义一个函数来封装这些命令,但它不是pipe道,我不喜欢它。 还有其他解决scheme吗?

如何检查在Cygwin,Mac或Linux上运行?

我有一个在Windows / Cygwin和Mac和Linux上使用的shell脚本。 每个版本都需要稍微不同的variables。 shell / bash脚本如何检测它是在Cygwin中,在Mac上还是在Linux中运行?

bash条件:如何“和”expression式? (如果)

我想我不清楚如何做“和”testing。 我想确保存在一个与[ -e $VAR ]的论点,但是结果是空string也被评估为真; 我不想要。 我如何“和”他们在一起? 或者还有另一个完成我想要的testing吗?

什么是最简洁的方式来在Bash中运行多个命令?

我已经设置了一个ssh代理,并且可以在Bash脚本中的外部服务器上运行命令,如下所示: ssh blah_server "ls; pwd;" 现在,我真正想做的是在外部服务器上运行很多长命令。 把所有这些引用在引号之间是相当难看的,为避免这种情况,我宁愿多次避免ssh'ing。 那么,有没有办法一次性把它放在括号内呢? 我正在寻找的东西沿线: ssh blah_server ( ls some_folder; ./someaction.sh; pwd; ) 基本上,只要干净,我都会很满意。 编辑 为了澄清,我正在谈论这是一个更大的bash脚本的一部分。 其他人可能需要处理脚本,所以我想保持清洁。 我不想有一个像下面这样的行的bash脚本: ssh blah_server "ls some_folder; ./someaction.sh 'some params'; pwd; ./some_other_action 'other params';" 因为这是非常难看和难以阅读。

如何在bash中检查语法而不运行脚本?

是否有可能检查一个bash脚本语法而不执行它? 使用Perl,我可以运行perl -c 'script name' 。 有什么等价的命令bash脚本?

用Bash脚本,我怎么能禁止一个命令的所有输出?

我有一个bash脚本,运行一个带有参数的程序。 该程序输出一些状态(这样做,这样做…)。 这个程序没有select安静。 我怎样才能防止脚本显示任何东西? 我正在寻找像“回声消失”的东西。

我怎样才能让`find`忽略.svn目录?

我经常使用find命令search源代码,删除文件等等。 令人烦恼的是,由于Subversion在其.svn/text-base/目录下存储了每个文件的重复项,我的简单search最终得到了很多重复的结果。 例如,我想在多个messages.h和messages.cpp文件中recursion地searchuint : # find -name 'messages.*' -exec grep -Iw uint {} + ./messages.cpp: Log::verbose << "Discarding out of date message: id " << uint(olderMessage.id) ./messages.cpp: Log::verbose << "Added to send queue: " << *message << ": id " << uint(preparedMessage->id) ./messages.cpp: Log::error << "Received message with invalid SHA-1 hash: id " << uint(incomingMessage.id) […]

在bash中提取没有path和扩展名的文件基本名称

鉴于这样的文件名称: /the/path/foo.txt bar.txt 我希望得到: foo bar 为什么这不起作用? #!/bin/bash fullfile=$1 fname=$(basename $fullfile) fbname=${fname%.*} echo $fbname 什么是正确的方法来做到这一点?

在bash脚本中创build时间戳variables

我正在试图在shell脚本中创build一个时间戳variables,使日志logging更容易一些。 我想在脚本的开始处创buildvariables,并在发出echo $timestamp时打印出当前时间。 然后我想,certificate是更困难的。 以下是我尝试过的一些事情: timestamp="(date +"%T")" echo打印出来(date +"%T") timestamp="$(date +"%T")" echo打印variables初始化的时间。 我试过的其他东西只是轻微的变化,没有更好的工作。 有谁知道如何完成我想要做的?

如何模拟环境cron执行脚本?

我通常有几个问题,如何执行脚本,因为他们通常没有我的环境设置。 有没有办法像cron那样调用bash(?),以便在安装之前testing脚本?