Tag: 庆典

从文件path获取文件目录path

在Bash中,如果VAR="/home/me/mydir/file.c" ,我如何得到"/home/me/mydir" ?

如何删除超过X小时的文件

我正在写一个需要删除旧文件的bash脚本。 目前使用的是: find $LOCATION -name $REQUIRED_FILES -type f -mtime +1 -delete 这将删除超过1天的文件。 但是,如果我需要更好的分辨率,比如说6个小时, 有一个很好的干净的方式来做到这一点,就像使用find和-mtime一样吗?

Bash:将文件中的行读入数组

我正在尝试读取包含行到Bash数组中的文件。 到目前为止,我尝试了以下方法: Attempt1 a=( $( cat /path/to/filename ) ) ATTEMPT2 index=0 while read line ; do MYARRAY[$index]="$line" index=$(($index+1)) done < /path/to/filename 这两种尝试都失败了,因为它们只返回一个包含文件第一行的元素数组。 我究竟做错了什么? 我正在运行bash 4.1.5

Bash:捕获命令在后台运行的输出

我想写一个bash脚本,将得到在后台运行的命令的输出。 不幸的是我不能得到它的工作,我分配输出的variables是空的 – 如果我用一个回声命令replace分配一切正常,但预期。 #!/bin/bash function test { echo "$1" } echo $(test "echo") & wait a=$(test "assignment") & wait echo $a echo done 这段代码产生输出: echo done 将分配更改为 a=`echo $(test "assignment") &` 作品,但似乎应该有一个更好的方式来做到这一点。

从Bash中的string中删除一个固定的前缀/后缀

在我的bash脚本中,我有一个string和它的前缀/后缀。 我需要从原始string中删除前缀/后缀。 例如,假设我有以下值: string="hello-world" prefix="hell" suffix="ld" 我如何得到以下结果? result="o-wor"

在bash中testing非零长度的string:或

我见过bash脚本testing非零长度string两种不同的方式。 大多数脚本使用-n选项: #!/bin/bash # With the -n option if [ -n "$var" ]; then # Do something when var is non-zero length fi 但-n选项并不是真的需要: # Without the -n option if [ "$var" ]; then # Do something when var is non-zero length fi 哪个更好? 同样的,这是testing零长度的更好的方法: if [ -z "$var" ]; then # Do something when […]

如何重新加载.bashrc而不注销并返回?

如果我对.bashrc进行了更改,如何在不注销的情况下重新加载它?

为什么我的Bash计数器在while循环之后重置

我有一个Bash脚本,我想要统计在循环一个文件时做了多less事情。 计数似乎在循环内工作,但在此之后,variables似乎重置。 nKeys=0 cat afile | while read -r line do #…do stuff let nKeys=nKeys+1 # this will print 1,2,…, etc as expected echo Done entry $nKeys done # PROBLEM: this always prints "… 0 keys" echo Finished writing $destFile, $nKeys keys 以上的输出是单独的行: 完成条目1 完成条目2 写完/写,0键 我想要的输出是: 完成条目1 完成条目2 完成的写作/等等,2个键 我不太清楚为什么nKeys在循环后为0 :(我认为这是一些基本的,但该死的,如果我可以发现它尽pipe看http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html和其他资源。 手指穿过其他人可以看看它,并“去吧!你必须…”!

Bashvariables作用域

请向我解释为什么最后的“回声”声明是空白的? 我期望它在while循环中递增为1: #!/bin/bash OUTPUT="name1 ip ip status" # normally output of another command with multi line output if [ -z "$OUTPUT" ] then echo "Status WARN: No messages from SMcli" exit $STATE_WARNING else echo "$OUTPUT"|while read NAME IP1 IP2 STATUS do if [ "$STATUS" != "Optimal" ] then echo "CRIT: $NAME – $STATUS" echo $((++XCODE)) […]

$ {var}参数扩展expression式可以嵌套在bash中吗?

我有什么是这样的: progname=${0%.*} progname=${progname##*/} 这可以嵌套(或不)成一行,即一个单一的expression? 我试图剥离脚本名称的path和扩展名,以便只剩下基本名称。 以上两行工作正常。 我的'C'性质正在使我更加混淆这些。