tcsh에서 전체 배열을 인쇄하고 싶습니다. uniq로 파이프하고 싶기 때문입니다. tcsh에서 이를 수행할 수 있는 방법이 있습니까?
나는 가지고있다set array
인쇄 중입니다.
echo "$array"
하지만 결국 오류가 발생합니다. 단어가 너무 길어서 더 작은 배열에서 작동합니다.
이를 수행하는 쉬운 방법이 있습니까?
답변1
아주 오래된 tcsh 버전이 있어야 합니다.말이 너무 길다이 제한은 2006년 tcsh 버전 6.14.03에서 제거되었습니다.
echo "$array"
배열 요소의 연결을 echo
단일 요소로 전달하지만 요소에 개행 문자가 포함되어 있으면 실패합니다.
echo "$array:q"
모든 요소의 연결을 전달하는 것이 더 정확할 것입니다.
배열의 모든 요소를 전달합니다(빈 요소 제외).다음 버전에서 수정됨)를 별도의 매개변수로 사용 echo
합니다. 즉,
echo $array:q
하지만 만약 echo "$array"
당신이 실패한다면말이 너무 길다, echo
아주 오래된 버전에서도 실패할 수 있습니다에코: 인수가 너무 많습니다..
답변2
tcsh에서는 다음과 같이 배열을 사용할 수 있습니다.
배열 정의
set myarray = ( element1 element2 element3 element4 etc )
전체 배열을 출력
printf '%s\n' "$array[-]"
인쇄 요소 1~3
printf '%s\n' "$array[1-3]"
참고: Bash에서 배열의 첫 번째 요소는 0
(0)에서 시작합니다.
또한 set verbose
설명된 줄과 실패한 줄을 보려면 스크립트 상단에 추가하세요.