이름은 같지만 증분 카운터가 있는 파일 5개를 만들고 싶습니다.
만약 내가한다면:
for i in {1..5}; do touch hallo_$i; done
hallo_1
등을 받습니다.hallo_2
hallo_3
만약 내가한다면:
for i in {1..5}; do touch company-price-$i_spec.rb; done
나는 얻다:company-price-.rb
뭔가로부터 탈출해야 하는 걸까요? bash는 내가 $i
변수에서 삭제/빼기를 원한다고 생각합니까 ?
도망가더라도 .
여전히 -
같은 결과를 얻게 될 것입니다. 어떤 팁이 있나요?
답변1
변수 확장에는 중괄호 형식을 사용해야 합니다.
for i in {1..5}; do touch company-price-${i}_spec.rb; done
그렇지 않으면 . 대신 변수 확장 bash
으로 처리됩니다 .$i_spec
$i
~에서bash
수동:
The basic form of parameter expansion is ${parameter}. The value of
parameter is substituted. The braces are required when parameter is a
positional parameter with more than one digit, or when parameter is
followed by a character that is not to be interpreted as part of its name.