Cファイルをコンパイルするシェルスクリプト

Cファイルをコンパイルするシェルスクリプト

かつてディレクトリ内のすべてのFILE.cファイルをFILE.outにコンパイルするシェルスクリプトがありました。

私はそれを失い、それを再作成しようとしており、次のようになりました。非常に似ていることを知っていますが、どこで間違っているのかわかりません。

#!/usr/bin/env bash

for i in 'ls *.c'
do
    gcc -g3 -o3 $i -o {$i%.}.out
done

ベストアンサー1

このコマンドを実行する必要はありませんls *.c。 Bashは自動的にワイルドカードパターンを拡張します。したがって、本当に絶望的でMakefileを作成したくない場合は、次のようにすることができます。

#!/usr/bin/env bash

for i in *.c
do
    echo "gcc -g3 -o3 $i -o ${i%.c}.out"
    # gcc -g3 -o3 "$i" -o "${i%.c}.out"
done

はい

次のサンプルデータがあるとします。

$ ls -1
a.c
b.c
c.bash
c.c
d.c
e.c

私のスクリプトを実行してくださいc.bash

$ ./c.bash 
gcc -g3 -o3 a.c -o a.out
gcc -g3 -o3 b.c -o b.out
gcc -g3 -o3 c.c -o c.out
gcc -g3 -o3 d.c -o d.out
gcc -g3 -o3 e.c -o e.out

スクリプトを実行するには、echo上記の行をコメントアウトしてから、このgcc行のコメントを削除する必要があります。

おすすめ記事