2017-06-02 42 views
0

我想创建一个bash脚本,它将根据文件类型循环一组文件,然后用文件名创建一个目录,然后通过javascript运行该文件,将它输出到创建的目录中。Unix Bash脚本运行但没有输出

#!/bin/bash 

FILES=/home/ndevon/BRAD/Original_Files/*60_R1.fastq.gz 
for f in $FILES 
do 
    echo mkdir $f 
    echo nohup /home/pszoevenyi/executables/FastQC/./fastqc [-t 2] [-o $f] [- 
f fastq] $f & 
done 

但是,当我运行这一切似乎工作正常,但没有输出。我使用ps x检查了活动作业,它告诉我队列中有一个-bash命令类型,但它有一个Ss状态。我对unix和bash非常陌生,实际上我今天就开始了,但我无法弄清楚为什么这样做不起作用。

谢谢

+0

无论如何,至少应该看到'mkdir/home/ndevon/BRAD/Original_Files/* 60_R1.fastq.gz',你应该得到一些输出......请用你看到的更新你的问题,以及你如何运行它。我可以看到一些问题:你正在尝试对文件名进行mkdir等。如果你的文件名包含空格,这也会有问题,但我会假设你没有。 – blackghost

+0

是的,你应该看到输出。但是我看到另一个问题:您将尝试创建一个与现有文件名称相同的目录 - 这是行不通的。 – linuxfan

+0

你说过活跃的工作吗?你的意思是背景工作,在工作或cron工作? – alvits

回答

0

你不需要“回声”你运行的每个命令。通过简单地运行它而不用回显,你应该看到输出。

你试过吗?

+1

对不起,这个答案应该是一个评论,而不是。而且,OP可能使用回声来测试循环。我建议你删除你的答案。 – linuxfan

+0

如果系统允许我添加评论,我会很高兴。但是,看起来新人不能做什么,除了看。 –

+1

我明白你的问题,但1)有耐心,你可以发表评论; 2)我再说一遍,这不是一个足够的答案 - 它大多是错误的。 – linuxfan

0

如果您没有看到任何输出,那意味着您的循环根本没有执行。也许没有/home/ndevon/BRAD/Original_Files/*60_R1.fastq.gz文件,所以循环可以简单地跳过,没有任何回声或错误消息。

+0

错了。如果没有文件,那么'FILES'和'f'都将具有一个文字值'/ home/ndevon/BRAD/Original_Files/* 60_R1.fastq.gz'。循环只会执行一次。 – alvits