0
을 추가하려면 에 대한. grep의 첫 번째 인스턴스는이 문자열의 인스턴스 하나를 예상대로 반환합니다.문제는 내가 예상 한대로 작동하지 않는 간단한 스크립트가의 crontab 파일
그러나 echo $CRONCONT
인스턴스는 * * * * *
과 함께 여러 가지로 대체됩니다. 여기에는 스크립트가 실행되는 디렉토리의 내용이 포함되지만 그 위치를 즉시 알지 못하는 많은 다른 것들도 포함됩니다.
내 cronfile에서 * * * * *
을 제거하면 문제가 사라지지만 * * * * *
과 함께 작동하지 않아야하는 이유를 알 수 없습니다.
감사를
*
는, 쉘 확장을위한 메타 문자입니다,하지만이 이미 내 문제를 해결하지 않았다. 이미 \\ * 및 fgrep 시도하고 차이를 만들지 않습니다. 또한 grep의 첫 번째 인스턴스가 올바르게 작동합니다. 또한/tmp/grep에서 *를 제거하지 않으면 grep에서 *를 제거하지 마십시오. 문제가 남아 있습니다. 마지막 점을 이해하지 못했습니다. 약간 확장 할 수 있습니까? 고맙습니다. lp. – user1445163'$ CRONCOUNT'는 별표를 포함하는 문자열을 포함하기 때문에,'echo $ CRONCONT'는'echo * * * */usr/loca ... '로 먼저 확장되고 쉘에 의해 실행되어 별표를 해석합니다 글로브로. 'echo "$ CRONCONT"'를 사용하면'$ CRONCONT'의 확장 된 값이'echo' 명령에 의해 사용되기 전에 인용됩니다. – chepner
그런데 패턴은'grep'과 함께 작동합니다.'*'* 패턴이 시작될 때 정규 표현식 연산자 (다른 문자를 따라야 함) 대신에 리터럴 "*"로 취급되기 때문입니다. – chepner