"grep"명령을 사용하여 문자열에 슬래시가 포함되어 있는지 확인하고 싶습니다. 처음에는 쉽지만 다음 스크립트를 작성했습니다. 내가 위의 스크립트는 "공간"변수에 있기 때문에 실패한다쉘 스크립팅 grep 명령
foo="someone/books in stack"
다음 문자열 변수 "foo는"을 설정하면
foo=someone/books
if [ `echo "$foo" | grep '/'` ]
then
echo "has forward slash"
fi
그러나, 문제는 모서리에 foo, 명령이 확장되면 if 문의 조건은 다음과 같습니다.
grep '/' someone/books in stack
"공백"때문에 위의 "grep"명령에 인수가 너무 많아 불법입니다. 참고로, 나는 경우 문을 사용하여 해결이 문제에 시도 : 그것은 자세한 이후
case $foo in
*/*)
echo "has forward slash"
;;
*)
;;
esac
는 그러나, 나는 case 문을 사용하지 않습니다. grep 명령이나 다른 명령을 사용하여이 문제를 어떻게 해결할 수 있습니까?
실제로 문제가 존재하지 않는 당신이 그것을 설명하는 방법 : 당신이 GREP을 사용하여 주장 반환 그것에서 상태와하지를 출력을 사용하는 경우
grep에 설명 된 것처럼 greps 명령 행으로 확장되지 않으므로 잘 작동합니다./echo를 다시 확인하십시오. grep '/''실제로 잘 작동합니다. –
@Yefim Dinitz 사실, 시도해 봅니다. 그것은 잘 작동하지 않습니다 – eleven
그럼 내가 본 것 중 가장 이상한'grep'을 사용해야합니다 ... –