단일 명령을 입력하여 여러 파일의 출력을 확인하고 싶습니다 [중복]

단일 명령을 입력하여 여러 파일의 출력을 확인하고 싶습니다 [중복]
(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

시스템의 셸이 다른 시스템에서 사용하는 셸과 다른 것 같습니다( echo $SHELL).

로컬 쉘이 호출 중인 쉘을 이해/대체할 수 {1..8}없습니다 tail.

시스템에서 동일한 셸을 사용해 보세요. 다음으로 안전하게 대체할 수 *있는 경우 스크립트에서 범용 와일드카드를 사용할 수도 있습니다.{1..8}*

관련 정보