Articles of bash

将stdout附加到文件,但继续输出到控制台

在linux / bash中,我希望将一个命令的标准输出附加到一个文件中,但是不会redirect它(即,我希望它可以转到控制台和文件)。 任何线索?

Bash:执行一系列历史命令

我如何从我的bash历史logging执行一系列命令? 例如,如果我想在我的bash历史logging中执行编号为34到42的命令,我尝试了如下的操作: for n in $(seq 34 42); do exec \!$n; done 但是这并不是真正的诀窍,是吗? 有任何想法吗? 谢谢!

暂时将STDOUTredirect到另一个文件描述符,但仍然屏幕

我正在做一个脚本,执行一些命令里面,这些命令显示一些输出在STDOUT (和STDERR以及,但这是没有问题的)。 我需要我的脚本生成一个.tar.gz文件到STDOUT ,所以在脚本中执行的一些命令的输出也转到STDOUT并以STDOUT无效的.tar.gz文件结束。 所以,简而言之,可以将第一条命令输出到屏幕(因为我仍然希望看到输出),而不是通过STDOUT ? 此外,我想保持STDERR不变,所以只有错误消息出现在那里。 我的意思是一个简单的例子。 这将是我的脚本: #!/bin/bash # the output of these commands shouldn't go to STDOUT, but still appear on screen some_cmd foo bar other_cmd baz #the following command creates a tar.gz of the "whatever" folder, #and outputs the result to STDOUT tar zc whatever/ 我已经尝试搞清楚exec和文件描述符,但我仍然无法得到它的工作: #!/bin/bash # save STDOUT to […]

SH条件redirect

我希望能够根据命令行开关将脚本的某些输出redirect到/dev/null 。 我不知道该怎么做。 以一种愚蠢的方式,这将是这样的(以一种太简单的方式): #!/bin/sh REDIRECT= if [ $# -ge 1 -a "$1" = "–verbose" ]; then echo "Verbose mode." REDIRECT='1>&2 > /dev/null' fi echo "Things I want to see regardless of my verbose switch." #… Other things… # This command and others along the script should only be seen if I am in verbose […]

在BASH中的选定文本中searchstring/模式

如果在选定的文本中出现string“—– BEGIN PGP MESSAGE —–”,我想解密选定的文本。 我有下面的代码,但它不显示任何东西。 #!/bin/bash xsel > pgp.txt if [grep -e "—–BEGIN PGP MESSAGE—–" pgp.txt] then gnome-terminal –command "gpg -d -o decrypted.txt pgp.txt" gedit decrypted.txt fi 当我select一个文本后,在terminal上运行它说 line 3: [grep: command not found 我是新来的bash脚本。 任何帮助,将不胜感激。 谢谢

我可以find哪个脚本输出哪个错误?

有一个脚本调用其他脚本,他们叫别人…我不知道究竟哪个脚本被调用,其中有多less。 我只知道,其中一些正在添加iptables规则,当我调用根脚本时,我得到这个错误。 iptables: No chain/target/match by that name. iptables: No chain/target/match by that name. 我的问题是,我无法find哪个脚本输出这个错误。 有什么方法或工具可以学习吗?

我可以在bash脚本中使用分配给虚拟networking接口的IP吗?

我想知道是否有可能dynamic读取networking接口的IP地址在bash脚本中使用。 就像是: #!/bin/bash MYPUBLICIP= get_eth0_address MYPRIVATEIP= get_eth0:0_address 我将如何去做这件事? 是否有可能区分eth0和虚拟eth0:0? [背景]我正在尝试编写一个脚本来将各种规则应用于一组VPS的iptables。 我试图避免必须摆弄每台机器的个人IP地址。

用bash脚本添加cronjob – 根目录没有crontab

我有一个部署脚本,并在其中我试图添加一个cron作业。 这是我使用的代码,我发现在stackoverflow。 我运行的是debian 8。 # ADD CRON crontab -l > mycron echo "10 * * * * cd /var/www/test/ && ./test" >> mycron crontab mycron rm mycron 当我运行这些命令,我​​得到的答复: no crontab for root 我在这里做错了什么,我怎样才能得到它,所以我可以使用bash脚本添加这个cron作业? 谢谢。

SCP从一个外部服务器到另一个

我正在尝试在本地服务器上的SCP将文件从一台远程服务器复制到另一台远程服务器(两台远程服务器都使用自定义端口(xxxx) 我在尝试: scp -r -P xxxx [email protected]:/home/myimages/images.tar.gz [email protected]:/home/myimages/images.tar.gz 但是我得到以下错误: ssh: connect to host xxx.xxx.xxx.222 port 22: Connection timed out 有什么build议么? 提前致谢。

UNIX:使用SMTP服务器发送邮件

我想通过远程SMTP服务器发送电子邮件。 如何才能做到这一点? 我将从bash shell脚本发送电子邮件。 我正在使用unix机器。 uname -a返回:linux linux 2.4.21 BrandZ假linux i686 Athlon i386 GNU / Linux 谢谢。