!#/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