CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。
Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。
Q&A
解決済
4回答
33417閲覧
総合スコア191
0グッド
0クリップ
投稿2016/09/06 08:51
0
題名のとおりです。
./a.out aaa
なら動くのに、
echo aaa | ./a.out
では動きません。
コマンドライン引数をパイプで渡すのはどうやればいいんでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答4件
シンプルには、
Bash1echo aaa bbb | ./a.out `cat`
Bash
1echo aaa bbb | ./a.out `cat`
投稿2016/09/06 13:51
総合スコア86349
ベストアンサー
xargs というコマンドがあります。
bash1echo aaa bbb | xargs a.out
bash
1echo aaa bbb | xargs a.out
とやると、
bash1a.out aaa bbb
1a.out aaa bbb
が実行されます。最初のコマンドの出力が複数行になると、その行数分 a.out が実行されます。
参考:xargs コマンド
投稿2016/09/06 09:02
総合スコア3401
回答へのコメント
2016/09/06 13:35
2016/09/06 21:45
xargsとかを使えばできると思います
sh1$ echo "-lt" | xargs ls
sh
1$ echo "-lt" | xargs ls
投稿2016/09/06 08:59
総合スコア6588
解決済みのところ失礼します。 もっと複雑になった場合は、シェルスクリプトで こんな感じでやるといいと思います。
Sh1#!/bin/sh 2echo 'hoge piyo' | \ 3while read h p 4do 5 ./a.out $h $p 6done
Sh
1#!/bin/sh 2echo 'hoge piyo' | \ 3while read h p 4do 5 ./a.out $h $p 6done
投稿2016/09/06 09:17
総合スコア7468
2016/09/06 09:17
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.30%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
コマンドライン引数をパイプで渡す方法
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。