저는 bash 스크립팅을 처음 접했습니다. 다른 디렉터리에 일부 파일이 있고 파일 이름이나 디렉터리 이름의 일부를 추출하고 해당 부분으로 변수를 만들고 해당 변수를 다른 명령에 적용하려고 합니다. 내 디렉터리와 파일 이름은 다음 패턴을 따릅니다.
user/Sample_001_002_5/001_002_5_fgdfgh_hgf00.gz
user/Sample_254_128_3/254_128_3_wserer_hgf00.gz
변수를 설정하는 방법을 알 수 있을까요? i=001_002_5 i=254_128_3 다음 스크립트를 작성했지만 명령에서 인식되지 않습니다.
dir=/users/Sample_*
for DIR in $dir
do i= basename ${DIR} | cut -c 8-
R="${DIR}/${i}*.gz" # Run correctly#
echo $i # run correctly#
echo $R # run correctly#
echo '@RG\tID:MCW\tSM:'${i}'\tPL:Illumina\tPU:'${i}" ### in this command i is not recognized######
done
답변1
이것이 문제의 원인인지는 모르겠지만 문제의 줄 끝에 있는 큰따옴표가 일치하지 않습니다.
(또한 echo는 원하는 경우 \t를 리터럴 대신 탭으로 처리하기 위해 "-e" 인수를 취해야 합니다. 나는 이것이 $i와 아무 관련이 없다는 것을 알고 있습니다.)