>  기사  >  php教程  >  Linux bash의 인수가 너무 많은 문제에 대한 솔루션

Linux bash의 인수가 너무 많은 문제에 대한 솔루션

高洛峰
高洛峰원래의
2017-01-04 17:23:472036검색

파일 내용이 비어 있는지 확인하려면 다음 문을 사용하세요.

if test -z `cat filename`

파일 이름이 비어 있거나 내용이 없는 문자열이 한 줄만 있는 경우 space , 모든 것이 정상입니다. 그렇지 않으면 인수가 너무 많거나 이진 연산자가 예상되는 경우와 같은 오류가 보고됩니다.

원인 분석:
파일 이름의 공백과 캐리지 리턴이 bash를 혼란스럽게 합니다.
환경 변수를 큰따옴표로 묶지 않으면 bash는 조건에 독립 변수가 너무 많다고 생각합니다.

문자열 인수를 큰따옴표로 묶어 이 문제를 해결할 수 있습니다.

모든 문자열 인수를 큰따옴표로 묶는 습관을 들이면 유사한 프로그래밍 오류를 많이 제거할 수 있을 것 같습니다.

해결책:

명령 실행 부분에 큰따옴표만 추가하세요.

if test -z "`cat filename`"

셸에 인수가 너무 많은 경우 해결 방법 2:

오늘은, 작은 문제를 해결하기 위해 가끔 이상한 문제가 발생했습니다. "[ ]"와 "[[ ]]"는 요약하면 다음과 같습니다.

코드를 보여주세요: If [ -z ` lsof -i :22 ` ] //이 방법은 너무 많은 인수를 보고하므로 [[ -z ` lsof -i:22 ` ]]
로 변경합니다. ~                                                🎜> Else 에코 "포트가 실행 중입니다."
Fi

이 간단한 셸 스크립트를 실행할 때 항상 너무 많은 인수가 보고됩니다. 간단히 말해서 "[[ ]]"는 "[ ]"보다 더 나은 융통성을 가지므로 이 문제를 피하려면 다음과 같이 바꾸십시오. "[ ]" 와 함께 "[[ ]]" . 또한 "[[ ]]"는 "[ ]"보다 내결함성이 더 높습니다. 즉, "[ ]"에서 보고될 수 있는 오류는 &&, ||와 같은 "[[ ]] 구조에서는 보고되지 않을 수 있습니다. 등. 이런 논리적 판단은 이 글의 초점이 아니므로 간략하게 언급하겠습니다.

리눅스 배시에서 인수가 너무 많은 문제를 해결하는 방법에 대한 자세한 관련 글은 주의하시기 바랍니다. PHP 중국어 홈페이지로 >

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.