Articles of bash

参数列表太长时如何正确使用“xargs”

有人可以给我一个在下面的操作使用xargs的例子吗? tar c $dir/temp/*.parse\ | lzma -9 > $dir/backup/$(date '+%Y-%m-%d')-archive.tar.lzma 我从bash得到错误“ / bin / tar:参数列表太长 ” 特别是我试图对大约4500个文件进行LZMA压缩; 所以这并不奇怪。 我只是不知道如何修改上面的使用xargs并摆脱错误! 谢谢。

使用getopts(bash)的多个选项参数

我想在bash中使用getopts来处理命令行参数。 其中一个要求是处理任意数量的选项参数(不使用引号)。 第一个例子(只抓取第一个参数) madcap:~/projects$ ./getoptz.sh -sabc -s was triggered Argument: a 第二个例子(我希望它的行为是这样的,但不需要引用“ madcap:~/projects$ ./getoptz.sh -s "abc" -s was triggered Argument: abc 有没有办法做到这一点? 这里是我现在的代码: #!/bin/bash while getopts ":s:" opt; do case $opt in s) echo "-s was triggered" >&2 args="$OPTARG" echo "Argument: $args" ;; \?) echo "Invalid option: -$OPTARG" >&2 ;; 🙂 echo "Option -$OPTARG requires […]

Bash监视磁盘使用情况

我买了一个有debian的debian的NAS盒子。 前些天空间不足,我没有意识到。 我基本上想编写一个bash脚本,当磁盘达到90%以上时会提醒我。 有谁知道脚本会做到这一点,或给我一些build议,写一个?

用bash脚本更新CRON

任何人都可以看到我的语法错误吗? 尝试编辑/更新cron作业,但该文件未被更新。 crontab -l | sed 's%*/5 * * * * cd /home/administrator/anm-1.5.0 && ./anm.sh%*/10 * * * * cd /home/administrator/anm-1.5.0 && ./anm.sh%' | crontab – *更新* 所以我仍然有这个麻烦。 最终我试图从一个configuration文件$ FREQ(分钟)来运行这个工作。 该脚本将首先检查configuration中的值是否与当前在crontab中的值不同。 如果值不同,它将用新值更新crontab。 crontab(初始安装和更新)也从variables中提取运行目录和脚本名称。 例: DIR=`pwd` SCRIPT=`basename $0` CRONTMP=`crontab -l | grep anm.sh` crontab -l | sed 's%'$CTMP'%*/'$FREQ' * * * * cd '$DIR' && ./'$SCRIPT'%' […]

如何在bash中sorting多行?

我正在尝试sorting的名称后面跟另一个string,如: John Doe AVAIL Sara Doe CALL Jim Doe AVAIL 我试图按名称sorting,但似乎无法弄清楚。 有人可以提供一些指导? 我的最终输出将如下所示: Jim Doe AVAIL John Doe AVAIL Sara Doe CALL 非常感激!

从ping -c提取平均时间

我想从命令中提取ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}' ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}' ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}'的平均时间。 107.921/108.929/110.394/0.905 ms 产量应该是: 108.929

我如何执行一个任意的脚本与其目录中的工作目录?

我需要从bash执行一个groovy脚本文件,我需要脚本有一个它所在的目录的工作目录。 也就是说,在我的bash脚本中,我正在这样做: /opt/script/myscript.groovy & 但是,这似乎将工作目录设置为/etc/init.d ,我从调用的目录。 如何将该脚本的工作目录更改为/opt/script ?

Bash脚本只运行一次

我想做一个sh脚本,在任何时候最多只能运行一次。 说如果我执行脚本,然后我再次执行脚本,我怎么做,如果脚本的第一个exec仍然工作,第二个将失败,一个错误。 也就是说,我需要检查脚本是否在执行任何操作之前在其他地方运行。 我将如何去做这个? 我的脚本运行了一个长时间的运行过程(即永远运行),我想用cron这样的东西每15分钟调用一次脚本,以防万一进程失败,它将被下一个cron脚本重新启动。 干杯。

打印STDOUT / STDERR并将它们写入Bash中的文件?

有没有办法让Bash将STDOUT / STDERRredirect到一个文件,但仍然打印到terminal?

如何删除特定字符后的string中的所有内容?

例: before: text_before_specific_character(specific_character)text_to_be_deleted after: text_before_specific_character 我知道这可以用'sed'来完成。 但我卡住了。 有人可以帮我吗?