我对在特定日期最后修改的文件执行了一些操作。我想获取日期,将其存入字符串,然后将其拆分以测试该日期是否符合我的要求。 到目前为止,我一直在尝试这样的事情:
#!/bin/bash
for i in {45..236}; do
nom=M$i
chem=/Users/nfs/helene/soft/metAMOS-1.5rc3/$nom.fastq/Assemble/out
if [ -e $chem ]; then
IN= $(date -r $chem)
arr=(${IN//\ / })
if [[ ${arr[1]} == 'juin' && ${arr[2]} == '10' ]]; then
echo $nom
#cp $chem/proba.faa /Users/nfs/helene/metagenomes/DB/$nom.faa
fi
fi
done
exit 0
但似乎日期并没有充足的IN IN,我也不确定空间分裂......
答案 0 :(得分:0)
也许一个简单的错误就是你没有将你的作业放在=
附近。必须是:
IN=$(date -r $chem)
这是一个简化的建议:
#!/bin/bash
for i in {45..236}; do
nom="M${i}"
chem="/Users/nfs/helene/soft/metAMOS-1.5rc3/${nom}.fastq/Assemble/out"
if [[ -e $chem ]]; then
read month day < <(exec date -r "$chem" '+%b %d')
if [[ $month == 'Jun' && $day == 10 ]]; then
echo "$nom"
# cp "$chem/proba.faa" "/Users/nfs/helene/metagenomes/DB/$nom.faa"
fi
fi
done
exit 0
* 有关格式列表,请参阅date --help
* <()
是一种流程替换形式。检查Bash的手册
* 当变量有变量时,请始终将参数放在双引号旁边以避免分词。