複数の .c ソース ファイルで満たされたディレクトリがあり、前のディレクトリから最初の .c ファイルをコピーし、コンパイルして実行し、削除するシェル スクリプトを別のディレクトリに書き込もうとしています。これで、ファイルをコンパイル、実行、および削除する方法を理解しましたが、ディレクトリに同じ拡張子を持つ複数のファイルがある場合に、その名前を知らずに.cファイルを1つだけ取得する方法について困惑していますか?
質問する
3075 次
4 に答える
4
1 つの方法は、ループを使用して、最初の繰り返しの後にブレークアウトすることです。
for f in dir/*.c; do
cp "$f" .
# compile
# run
# delete
break
done
于 2013-03-04T21:50:39.127 に答える
1
「最初の」をどのように定義するかを指定していませんが、これには次のように使用できますset
。
set -- source_dir/*.c
cp "$1" .
# ...
rm "$1"
于 2013-03-04T21:59:48.980 に答える
1
あなたが「最初」とは、ソートされたリストの最初のファイルを意味すると仮定します。
forループは正常に機能しますが、次のこともできます。
file=`ls -1 dir/*.c | head -1`
# compile $file && run $file && delete $file
于 2013-03-04T22:01:13.483 に答える
1
bash では、配列を使用できます。
files=(*.c)
echo "compiling ${files[0]}"
compile ${files[0]}
于 2013-03-05T00:02:10.733 に答える