[완료] bash 스크립트 문자열 비교연산 오류
글쓴이: nomail / 작성시간: 수, 2014/08/27 - 2:24오전
bash 스크립트를 짜는데 배열 비교하는 코드에서 에러가 납니다.
분명 정상적인 문자열인데 아무리 찾아봐도 이유를 모르겠습니다.
str1=(apple orange) str2=(apple orange) test "${str[@]}" = "${str2[@]}" && echo 'strings are identical'
에러 내용은 test: too many arguments 이렇게 나옵니다.
다른 방법으로 비교연산을 처리했습니다만 이유라도 알고 싶어서 질문드립니다.
Forums:
음 ..
[@] 를 [*] 로 바꾸세요.
array 에서 arr[@] 는 element 들을 서로 다른 argument 로 처리하기 때문에..
test 문에 여러 개의 argument 가 들어가는 식이 되어서 에러가 날겁니다.
반대로 arr[*] 를 쓰면 모든 element 를 묶어서 하나의 argument 처럼 처리하기 때문에, 의도한 대로 동작할 겁니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
도움 주셔서 정말 고맙습니다!! ㅠㅠ 알려주신
도움 주셔서 정말 고맙습니다!! ㅠㅠ
알려주신 방법대로 하니까 에러없이 정상적으로 동작합니다!!
스크립트에서 파라메터 받을 때 $@ $* 차이가 배열에서도 비슷하게 동작하는 거였네요.
다시 스크립트 예쁘게 짜 봐야 겠습니다. 고맙습니다!!
댓글 달기