Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中将外部程序处理到另一个目录后,如何组织正确的结果写入方式?_Bash - Fatal编程技术网

在bash中将外部程序处理到另一个目录后,如何组织正确的结果写入方式?

在bash中将外部程序处理到另一个目录后,如何组织正确的结果写入方式?,bash,Bash,我正在编写一个简单的代码来自动处理外部程序RNAfold。在本期中,我创建了一个目录,其中文件夹包含我发送给RNAfold的初始数据,以获得我想在另一个文件夹中写入的一些结果。我面临着从RNAfold重定向结果的问题。我需要修什么 #! /bin/bash output_dir="$2" # an_level1/an_level2/an_level3 for file in ls "$1"/*.fa; do cbf="$(readlink -e "$(file)")" cbf

我正在编写一个简单的代码来自动处理外部程序RNAfold。在本期中,我创建了一个目录,其中文件夹包含我发送给RNAfold的初始数据,以获得我想在另一个文件夹中写入的一些结果。我面临着从RNAfold重定向结果的问题。我需要修什么

#! /bin/bash

output_dir="$2" # an_level1/an_level2/an_level3

for file in ls "$1"/*.fa; do
    cbf="$(readlink -e "$(file)")"
    cbf_fn="$(basename "$cbf")"                  #*.fa
    filename_WO_ext="${cbf_fn%.*}"               #*  
    RNAfold < "$file" > "${output_dir}/${filename_WO_ext}/.txt";done
#/bin/bash
output_dir=“$2”_level1/an_level2/an_level3
对于ls“$1”/*.fa中的文件;做
cbf=“$(readlink-e“$(文件)”)
cbf#u fn=“$(basename“$cbf”)”#*.fa
filename_WO_ext=“${cbf_fn%.*}”#*
RNAfold<“$file”>“${output\u dir}/${filename\u WO\u ext}/.txt”;完成

将您的脚本粘贴到那里:@Cyrus,谢谢。我修复了包,但我不确定这个bash脚本是否是解决我的问题的正确解决方案“我面临重定向结果的问题”-如果您具体说明问题是什么,它会有所帮助。不要对ls“$1”/*.fa中的文件使用
,无论是否使用单引号或反勾号。只需对“$1”/*.fa
中的文件执行
。确实要在此处执行文件吗?:
cbf=“$(红线-e“$(文件)”)”
您可能应该删除内括号:
cbf=“$(红线-e“$文件”)”
。当然,
readlink
应该是
readlink
?@DennisWilliamson,
readlink
。我想将此文件发送到外部程序RNAfold,并将每个文件的结果保存在另一个文件夹中。我的意思是:我在~\DataFromRfam(~\DataFromRfam\RF00001.fa)中有RF00001.fa。我调用RNAfold并将结果保存在文件夹~\Results中的文件RF0001.txt-
RNAfold>~\DataFromRfam\RF00001.fa好吧,你问题中的代码对我来说没什么问题(除了我在第一条评论中提到的东西)。但你在最后一条评论中所说的完全错误。除非您在Windows上,否则路径分隔符应该是斜杠(
/
)而不是反斜杠(`\`),并且重定向是向后的。请将脚本粘贴到此处:@Cyrus,谢谢。我修复了包,但我不确定这个bash脚本是否是解决我的问题的正确解决方案“我面临重定向结果的问题”-如果您具体说明问题是什么,它会有所帮助。不要对ls“$1”/*.fa中的文件使用
,无论是否使用单引号或反勾号。只需对“$1”/*.fa
中的文件执行
。确实要在此处执行文件吗?:
cbf=“$(红线-e“$(文件)”)”
您可能应该删除内括号:
cbf=“$(红线-e“$文件”)”
。当然,
readlink
应该是
readlink
?@DennisWilliamson,
readlink
。我想将此文件发送到外部程序RNAfold,并将每个文件的结果保存在另一个文件夹中。我的意思是:我在~\DataFromRfam(~\DataFromRfam\RF00001.fa)中有RF00001.fa。我调用RNAfold并将结果保存在文件夹~\Results中的文件RF0001.txt-
RNAfold>~\DataFromRfam\RF00001.fa好吧,你问题中的代码对我来说没什么问题(除了我在第一条评论中提到的东西)。但你在最后一条评论中所说的完全错误。除非您在Windows上,否则路径分隔符应该是斜杠(
/
)而不是反斜杠(`\`),并且重定向是向后的。