回文を見つけて印刷します(使用条件なし)。

回文を見つけて印刷します(使用条件なし)。
!#/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

おすすめ記事