たとえば、次のようになります。
最初
cd /usr/lib
そして走る
for x in $(ls);do if [ "$x" == "*.a" ];then echo $x;fi;done
私がやりたいことは、拡張子が.aのファイルを選択して印刷することです。これを行うより簡単な方法があることを知っていますが、これは私の意図ではありません。
問題は、上記のコマンドが機能しないことです。理由はわかりません。私はこれを学んだこの投稿
私も試しました
[ "$x" == *.a ] bash: [: too many arguments
[ $x = "*.a" ] shows nothing
[ $x = *.a ] bash: [: too many arguments
うまくいくことはわかりますが、この状況でテストを書く正しい方法が何であるかを[[ $x == *.a ]]
知りたいです。[
ベストアンサー1
for x in ./*; do
case $x in
*".a" ) echo "$x";;
esac
done
構造[
はこれに完全には適していません。しかし、あなたが主張するならば、私たちはこれを行うことができます:
[ '.a' = ".${x##*.}" ]
説明する
$ xに次のものが含まれていると仮定すると、my.file.testing.a
左${x##*.}
から始めてから.
見える最後の項目までできるだけ削除します$x
。 IOW、私たちはついにすべてを下ろし、extension
視覚化をa
前面に掲げました。今、私たちは.a
成功にもっと良いと思うもの( )と比較するために計算したばかりの拡張を持っています。