
Linux上でソースコンパイルのためのMakefileを書いてるんですが、インストール先をmake実行者に標準入力から入力させたいんですよ。
bashのreadコマンドで変数に入れられんのかな?と思って以下のように書いて実行しましたがうまく行きません。
-------------------------------------------------
install :
@read -p "install dir << " DIR
cp -p ${FILE} ${DIR}
-------------------------------------------------
echoさせてみると${DIR}は空っぽみたいです。
どなたか、書き方を教えてください。
No.2ベストアンサー
- 回答日時:
makeでは実行行は1行ずつ、sh -c "行内容" のようにして実行されるので、次の行に変数を引き継ぐことは出来ません。
install:
@read -p "install dir <<" DIR;cp -p ${FILE} $${DIR}
のように1行にすればOKです。$${DIR}と$を重ねるのは、make が sh に渡す前に変数展開してしまわないようにするためです。
ただし、上記のようにすると、cp まで @ が効いて表示されないので、表示したければ、
@read -p "install dir <<" DIR;echo cp -p ${FILE} $${DIR};cp -p ${FILE} $${DIR}
ありがとうございました。これで解決です!
とあるモジュールのインストール先がそれぞれ使うユーザーによって異なるというもので、単にmakeした後で勝手にcpしてもらっても良かったんですが、使う側の技術レベルがまちまちなんで親切機能をつけてやりたかったんですよ。感謝!
No.1
- 回答日時:
make で対話的な処理を行うのはあまり一般的ではありません。
インストール先をユーザに入力させたいのであれば、make に '=' を含む引数を渡すと、変数指定であるとみなされるので、上記の例なら
host% make install DIR=/usr/local/foo
などとさせる方法がありますが、それではダメでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- UNIX・Linux 実行の仕方及び実行結果が分かりません。 2 2022/11/17 19:31
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- C言語・C++・C# Makefileのechoの展開について 2 2022/07/26 07:35
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
プログラミングを学べる!?進化している子どものおもちゃについて専門家に聞いた!
プログラミングを学べるレゴブロックがあることはご存知だろうか。レゴに限らず最近のおもちゃには、プログラミングの要素がどんどん取り入れられているようだ。「教えて!goo」にも、「プログラミングを学べる子供...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
複数のbatファイルを自動実行し...
-
Windows System32 Security Hea...
-
「読み取りと実行」と「読み取...
-
Excel VBA ステップインが途中...
-
VBscriptが起動しない?
-
バッチファイルの内容を表示さ...
-
WSH.Run の処理内容をテキスト...
-
Excel(エクセル) VBA プロシー...
-
これってパソコンの最適化が完...
-
PDFファイルを開き、印刷し、閉...
-
EXIF情報を出力するマクロ
-
VScodeのエラー解決法 Pythonの...
-
VBSでバッチを実行できません。
-
ネットワーク名が見つかりません
-
バッチファイルが不正終了して...
-
WSHでリモートスクリプト起動時...
-
powershellをバックグラウンド実行
-
+Lhaca バッチファイル 自動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
バッチファイルの内容を表示さ...
-
exeファイルを実行するとコマン...
-
VBscriptが起動しない?
-
これってパソコンの最適化が完...
-
「読み取りと実行」と「読み取...
-
複数のbatファイルを自動実行し...
-
Windows System32 Security Hea...
-
ネットワーク名が見つかりません
-
エクセル フォルダの画像を画...
-
Excel(エクセル) VBA プロシー...
-
PDFファイルを開き、印刷し、閉...
-
Access の VBA 実行中に他の操...
-
バッチファイルが不正終了して...
-
VScodeのエラー解決法 Pythonの...
-
VBScriptでコマンドプロンプト...
-
pythonスクリプトを管理者権限...
-
VB.NETでのDOSコマンドを実行に...
-
batからexeを実行し戻り値を受...
おすすめ情報