Linux

我想通過輸入一個命令來檢查多個文件的輸出

  • November 3, 2018
(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

需要明確的是,這些文件確實存在……我可以單獨打開它們,但不能批量打開。

您系統中的外殼似乎與您在其他系統上使用的外殼不同 ( echo $SHELL)

您的本地外殼不理解/替換{1..8}您的tail通話。

嘗試在您的系統上使用相同的 shell,您也可以*在腳本中使用通用萬用字元,以防萬一{1..8}可以安全地替換為*

引用自:https://unix.stackexchange.com/questions/479593