我想通过键入单个命令来检查多个文件的输出

我想通过键入单个命令来检查多个文件的输出
(directory=$(python -c 'import read_params; print(read_params.get_directory())')
nsrc=$(cat $directory/master.pixels|wc -l)
tail $directory/forward_src0{1..$nsrc}_ls00/out_data_forward)

上面的作用是模拟正在运行(这并不重要),上面的命令通过打印目录中的文件来跟踪它:

  • ..../forward_src01_ls01/out_data_forward
  • ..../forward_src01_ls02/out_data_forward
  • ..../forward_src01_ls03/out_data_forward
  • ..../forward_src01_ls04/out_data_forward

依此类推,直到 src_08。

在某些linux系统中运行没有错误。但在我的系统中,它会抛出以下错误:

[prasad@daahpc1 sparc_flows]$ (directory=$(python -c 'import read_params; print(read_params.get_directory())')
> nsrc=$(cat $directory/master.pixels|wc -l)
> tail $directory/forward_src0{1..$nsrc}_ls00/out_data_forward)
tail: cannot open /scratch/prasad/sparc_test/forward_src0{1..8}_ls00/out_data_forward' for reading: No such file or directory

需要明确的是,这些文件确实存在......我可以单独打开它们,但不能批量打开它们。

答案1

您系统中的 shell 似乎与您在其他系统上使用的 shell 不同 ( echo $SHELL)

您的本地 shell 无法理解/替换{1..8}tail通话中的 。

尝试在您的系统上使用相同的 shell,您也可以*在脚本中使用通用通配符,以防{1..8}可以安全地替换为*

相关内容