makefileの文法で、下記構文の意味を伺いたく質問させて頂きました。

$(RM) $(TEST:.o=.lst)

どうか宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>$(RM)



マクロRMに設定された内容に展開する。
例えば、

RM = /bin/rm

と定義されていた場合、

bin/rm

に置き換えられる。


>$(TEST:.o=.lst)

マクロTESTを展開する際に文字列.oを文字列.lstに置き換える。
例えば、マクロTESTが

TEST = test1.o test2.o

と定義されていた場合には、

test1.lst test2.lst

に置き換えられる。
    • good
    • 0
この回答へのお礼

端的な回答、誠に有難うございました。
大変、分かりやすかったです。

お礼日時:2006/08/25 23:09

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qmakefileの文法で?=の意味は?

あるmakefileを読んでいたら、?= という構文が出てきました。これの意味を伺っても宜しいでしょうか?

= や := はマクロ定義(後方追加、前方追加)である事が分かっていますが、?=は分からずじまいでした。

どうか宜しくお願い致します。

Aベストアンサー

左辺で指定した変数が値を持っていないときに, 右辺の値を与える (左辺の変数が既に値を持っているときには変更しない) というものです.

Qソフトウェアテストに関して、stress test とload test の違いはどこにあるのでしょうか?

ソフトウェアテストに関して、stress test とload test の違いはどこにあるのでしょうか?
webで検索するとstress testは負荷をかけて応答性能などの劣化度合いを調べるもののようですが、load testも似たような意味合いではないかと思うのですが、違いがいまひとつわかりません。

Aベストアンサー

http://www.jstqb.jp/syllabus.html
ソフトウェアテスト標準用語集 日本語版Ver 1.1 (2006/12/22 )
作成:国際ソフトウェアテスト資格認定委員会 用語集作業班
編集者:Erik van Veenendaal(オランダ)
(翻訳:Japan Software Testing Qualifications Board 技術委員会)

上記の用語集によると、以下のような記述があります。

/* 引用はじまり。*/

ストレステスト(stress testing): 要件で定義した限界、または、それを超えた条件で、システムやコンポ-ネントを評価するテスト。

ロ-ドテスト(load testing): コンポ-ネントやシステムの動作を測定するテストの一種。負荷(例えば、並列実行ユ-ザ数やトランザクションの数)を増加させ、コンポ-ネントやシステムがどの程度の負荷に耐えられるか判定する。

/* 引用おわり。*/

これを元に、個人的には以下のように解釈しています。

ストレステスト→仕様で定められているMAXまたはMINでも正常に動作するのかどうかを確認する。もし、その値を越えた場合にエラーメッセージを出すなどのテストケースであれば、その表示や動作を確認できればOK。

ロードテスト→単にエラーメッセージの表示などを確認するだけでなく、様々な負荷をかけ、それでも正常に動作することを確認する。エージングなどの言葉が使われるのは、こちらの方ですね。

つまるところ、程度の度合いになってきますが、意味的には以下のような感じですね。

ストレステスト < ロードテスト

http://www.jstqb.jp/syllabus.html
ソフトウェアテスト標準用語集 日本語版Ver 1.1 (2006/12/22 )
作成:国際ソフトウェアテスト資格認定委員会 用語集作業班
編集者:Erik van Veenendaal(オランダ)
(翻訳:Japan Software Testing Qualifications Board 技術委員会)

上記の用語集によると、以下のような記述があります。

/* 引用はじまり。*/

ストレステスト(stress testing): 要件で定義した限界、または、それを超えた条件で、システムやコンポ-ネントを評価するテスト。

ロ-ドテスト(l...続きを読む

QUNIXシェルプログラミング ${@+"$@"}

「入門UNIXシェルプログラミング」という書籍に以下のような記述がありました。
どうも矛盾しているようで、理解できないのですが、シェルに詳しい方、解説をお願いできないでしょうか。よろしくお願い致します。

以下の文章が、もし「"$@"は""に、"$*"はNULLに置き換わります。」なら理解できるんですが・・・
誤植では、ないですよね…?

(以下引用)--------------------------------------------------------
$*をダブルクウォートで囲むと、1つの文字列になります。$@をダブルクォートで囲むと、それぞれ別々の文字列であると解釈されます。
それならいつでも、「"$@"」を使えば混乱がなくていいじゃないか、と思われるかもしれません。
ところがこれにはこれで落とし穴はあるのです。
位置パラメタに何の値もセットされていない場合、つまり、渡すべきパラメタが何もない状態のときには、"$@"はヌルに、"$*"は""に置き換わります。
ヌルの場合はパラメタとして処理しませんが、""は「何もないパラメタがある」として処理します。どちらを選択しなければならないかは、状況によって判断しなくてはなりません。
一般的には、前節で説明した${variable+value}の形式を使うのが最適でしょう。
${@+"$@"}
こう書くことで、位置パラメタに何もセットされていない場合には何もしない、という条件を作れます。

「入門UNIXシェルプログラミング」という書籍に以下のような記述がありました。
どうも矛盾しているようで、理解できないのですが、シェルに詳しい方、解説をお願いできないでしょうか。よろしくお願い致します。

以下の文章が、もし「"$@"は""に、"$*"はNULLに置き換わります。」なら理解できるんですが・・・
誤植では、ないですよね…?

(以下引用)--------------------------------------------------------
$*をダブルクウォートで囲むと、1つの文字列になります。$@をダブルクォートで囲むと、それ...続きを読む

Aベストアンサー

この記述は、パラメータ無しの時の "$@" の展開が昔と今では違っていることを踏まえて無いので一部意味不明になってます。

例えば、引数が、a "b c" d という3つの文字列のとき、"$1" は a, "$2" は "b c", "$3" は d になります。
"$@" は、a "b c" d の3つの文字列になり、"$*" は、"a b c d" と1つの文字列になります。引用符で囲まず、単に $@ や $* と書くと、a b c d という4つの文字列になります。

で、引数の個数がゼロのとき、"$*" は "" (空文字列) という1つの文字列、つまり "$*" は引数の個数に関係なく常に1つの文字列になります。これに対して、"$@" は「空」つまりゼロ個の文字列に展開されます。

つまり、シェルスクリプトの引数をできるだけそのまま子供のコマンドに伝えるときには、"$@" を使えばいい訳です。これで、引数の個数がゼロ個であれ、たくさんであれ、引数が引用符で囲まれていても常に、親スクリプトの引数と同じ物、同じ個数が子コマンドに渡ります。

ところが、昔の/bin/shでは、引数がゼロ個の時の "$@" は空でなく "" という1つの空文字列に展開されるという仕様でした。このため、「できるだけそのまま子供のコマンドに伝える」という場合には、${@+"$@"} と書く必要がありました。現在のほとんどのshでは、"$@" でOKです。もしかすると古い仕様のままのshがあるかもしれませんが。

この記述は、パラメータ無しの時の "$@" の展開が昔と今では違っていることを踏まえて無いので一部意味不明になってます。

例えば、引数が、a "b c" d という3つの文字列のとき、"$1" は a, "$2" は "b c", "$3" は d になります。
"$@" は、a "b c" d の3つの文字列になり、"$*" は、"a b c d" と1つの文字列になります。引用符で囲まず、単に $@ や $* と書くと、a b c d という4つの文字列になります。

で、引数の個数がゼロのとき、"$*" は "" (空文字列) という1つの文字列、つまり "$*" は引数の個数...続きを読む

Qawkで複数ファイルをよんで$1$2と参照できるでしょうか?

awkで複数ファイルをよみこんでファイル1の$1ファイル2の$2と参照したりできないでしょうか?

Aベストアンサー

>この場合file1とfile2のデリミタを指定するには

デリミタが同じ","の場合
gawk -F, '{A=$1;getline < "file2";print A,$2}' file1

file1が","で、file2が" "の場合
gawk -F, '{A=$1;FS=" ";getline < "file2";print A,$2;FS=","}' file1
(行が読まれる時点でのFSの値で区切られます)

Q${parameter:-word} と ${parameter:=word} の違い

bashのパラメータ展開で

${parameter:-word} と ${parameter:=word}

の違いが何なのかよく分らないのですが、何が違うのでしょうか?

http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html

Aベストアンサー

 :-の方は、parameterの値が変わりません。:=は変わります。どちらもparameterに既に値が入っている場合は何も起こりません。
 別の言い方をすると、:=の方はこの後bashが(子プロセスとして)起動するプロセスの環境変数にも$parameterがwordになりますし、:-はなりません。:=は何らかのプログラムを起動するスクリプト内で空っぽならデフォルト値を設定するというような用途に使用します。
 以下、bashですけど$が出てきまくると紛らわしいのでプロンプトを%とします。

% echo ${SAMURAI:=LAST}
LAST
% echo ${DORA:-YAKI}
YAKI
% echo $SAMURAI
LAST ←さっきのでSAMURAIにLASTが代入された
% echo $DORA
   ←さっきのでDORAにYAKIが代入されていない
%


人気Q&Aランキング

おすすめ情報