Bash: Bash 스크립트에 변수가 있습니다.

Bash: Bash 스크립트에 변수가 있습니다.

Bash 스크립트 dirs= "4";에 변수가 있습니다. 다른 파일에서 이 번호를 가져오고 싶기 때문에 dirs= sed -n '1p' < test.txt; 명령을 사용하면 번호가 표시됩니다. 터미널에서 확인해보세요. 그러나 코드에서는 dir.을 사용하여 디렉토리를 반복하고 싶습니다. 스크립트에서는 dir이 숫자라는 것을 이해하지 못하기 때문에 작동하지 않습니다.

d= sed -n '1p' < test.txt
for dirs in $d    
do
  echo "$dirs"
done
dirs= read $dirs

speeds= sed -n '2p' < test.txt 

for speeds in $s    
do
  echo "$speeds"
done
for dir in $dirs
do
  for speed in $speeds
  do
    echo "speed=$speed   dir=$dir"
done
done

답변1

다음을 사용해야 합니다.speeds=$(sed -n '2p' < test.txt)

실제로 일어나는 일은 bash가 그 공간을 보고 다른 명령으로 speeds=취급 한다는 것입니다. sed...따라서 speeds빈 문자열로 설정된 다음 실행됩니다 sed(이것이 스크립트를 실행할 때 값이 인쇄되는 이유입니다. 값이 변수에 저장되는 대신 터미널에 인쇄됩니다). 하위 쉘에서 실행되고 출력을 반환하도록 sed명령을 래핑한 $( )다음 공백을 제거하고 =원하는 변수에 할당해야 합니다 .

관련 정보