ディレクトリで.c(Cファイル)で終わるすべてのファイルに対していくつかの操作を実行してください。コードは次のとおりです
#!/bin/sh
clear
for file in *
do
if [ $file="*.c" ]
then
echo $file
fi
done
exit 0
動作しません。ただ、すべてのファイルとディレクトリを一覧表示します。
答え1
onの条件付き書式が正しくありません。文字列が空でないことをif
確認するだけです。$file=*.c
次に変更してみてください。
#!/bin/sh
clear
for file in *
do
if [ "$file" = "*.c" ]
then
echo "$file"
fi
done
exit 0
一方、この場合、エンコードされた文字「*」は機能しませんが、文字列として解釈されます。
努力する:
#!/bin/sh
clear
for file in *.c
do
echo "$file"
done
exit 0
答え2
テストステートメントはファイルのサフィックスがあるかどうかを確認しません.c
。 (ほとんどの場合)と同じであることを$file
確認し*.c
てくださいtest(1)
。
しかし、for文を読み取りに置き換えると
for file in *.c
forステートメントはで終わるファイルのみを渡すため、.c
再確認する必要はありません。
答え3
別のライナー方法は、次のものを使用することですfind
。
find . -name "*.c" | xargs echo
このファイルで実際にやりたいことに依存するので、これは役に立ちます。