0

拡張子が.shのこのようなファイルがあります。

clear
echo -n "Enter file name: "
read FILE
gcc -Wall -W "$FILE" && ./a.out
echo

このファイルを実行できる場合は、.cファイルを要求し、指定された場合は、コンパイルして.cファイルを出力します。

このため、最初にこの.shファイルを実行し、要求されたときに.cファイル名を付ける必要があるたびに。とにかくありますか?それで、コマンドライン自体で.cファイルを指定するだけで、そのファイルを取得して作業を実行できます...

つまり、「。/ file.sh somecommand cfile.c」を指定すると、cfile.cを入力として受け取り、コンパイルして出力を出力します。

4

2 に答える 2

4

'$ 1'変数を使用します:

clear
gcc -Wall -W $1 && ./a.out
echo

$ 1は、「コマンドラインからの最初の引数」を意味します。

または、スクリプトを使用して一度に複数のファイルをコンパイルする場合は、次のように$@変数を使用できます。

gcc -Wall -W $@ && ./a.out

次のようにスクリプトを呼び出します(「script.sh」と呼ばれると仮定します)。

./script.sh file.c

次の記事のセクション3.2.5を参照してください。

プロジェクトが大きくなった場合は、 automakeなどのビルド用に指定されたツールの使用を検討することもできます。

于 2013-03-04T10:01:52.787 に答える
0

どちらの方法でも実行させることができます。

if [ -n "$1" ] ; then
    FILE="$1"
else
    echo -n "Enter file name: "
    read FILE
fi
gcc -Wall -W "$FILE" && ./a.out

存在する場合はコマンドライン引数を使用し、存在しない場合はファイル名を要求します。

于 2013-03-04T16:20:48.723 に答える