회문을 찾아 인쇄합니다(사용 조건 없음).

회문을 찾아 인쇄합니다(사용 조건 없음).
!#/bin/sh

a=$1
b=$(echo $a | rev)

if [ $a == $b ]; then
   echo $a 
fi

나는 어떤 단어를 입력하는 스크립트를 작성하고 싶습니다. 스크립트는 그것이 회문인지 확인해야 하고, 회문이면 해당 단어를 출력해야 합니다.

또한 조건부도 사용할 수 없습니다.

"uniq"를 사용하여 출력을 다른 텍스트에 쓰거나 다른 방법으로 비교하고 출력을 인쇄하는 것에 대해 생각했지만 너무 복잡한 것 같습니다...

어떤 제안이라도 감사하겠습니다.

답변1

선생님과 함께 놀자:

$ a="anna";diff -sq <(echo "$a") <(echo "$a" |rev)
Files /dev/fd/63 and /dev/fd/62 are identical

$ a="arrna";diff -sq <(echo "$a") <(echo "$a" |rev)
Files /dev/fd/63 and /dev/fd/62 differ

결론: diff는 단어가 회문인지 여부를 알려줍니다.

프로세스 대체에 아직 만족하지 않으신다면,

$ a="anna" && echo "$a" >normal.txt && echo "$a" |rev >reverse.txt
$ diff -sq normal.txt reverse.txt

관련 정보