2017-04-11 2 views
-1

일치하는 이름이 없으면 "xyz '디렉토리에 없습니다"라는 메시지가 표시되도록 프로그램을 수정하십시오. 'if'문을 사용하여 $ 값을 확인할 수 있습니다. grep 명령이 성공했는지 확인하십시오 ('0'은 성공을 나타냅니다). grep이 성공하지 못하면 메시지 ($ name 값 포함)를 echo합니다.IF 문의 LINUX

원래 코드이었다

#!/bin/bash 

name=$1 

if [ "$name" = "" ] 
then echo -n "Enter a name to search for: " 

read name 

fi 

grep -I $name ~uli101/2017a/phonebook 

나는 기본적으로 삽입해야하고 경우 위의 지침을 사용하여 프로그램에 문. 나는 다음과 같은 많은 다른 것들을 시도했다 :

if [ $? = 1 ] 
then echo -n "Name 'xyz' not in directory" 
fi 

그러나 응답을받지 못하고있다. Pls이 날 도와. 어떤 도움을 주셔서 감사합니다.

#!/bin/bash 

name=$1 

if [ "$name" = "" ]; then 
    echo -n "Enter a name to search for: " 

    read name 
fi 

grep -I $name phonebook 

if [ $? = 1 ]; then 
    echo "Name '${name}' not in directory" 
fi 

를 또는로 경우에 당신은 마지막을 변경할 수 있습니다 : 이것은 나를 위해 노력하고 있습니다

답변

0

시도

grep -I $name phonebook && echo -n "Name not in directory" 
+0

나는 또한 시도했지만 잘못되었다고 말합니다. –

+0

질문 : 누가 틀렸다고 말합니까? –

+0

@KyleMathews 답변을 수정하고 다시 시도하십시오. –

0

이 시도, 그것은 나를 위해 작동합니다.

#!/bin/bash 
# 

NAME=$1 

if [ -z "${NAME}" ]; then 
    echo -n "Enter a name to search for: " 
    read NAME 
fi 

grep -I $NAME~uli101/2017a/phonebook