[解決済み】パイプからシェル変数に値を読み込む
2022-04-05 19:49:07
質問
私はbashにパイプで送られたstdinからのデータを処理させようとしていますが、うまくいきません。私が言いたいのは、以下のどれもが動作しないということです。
echo "hello world" | test=($(< /dev/stdin)); echo test=$test
test=
echo "hello world" | read test; echo test=$test
test=
echo "hello world" | test=`cat`; echo test=$test
test=
を出力させたい場所
test=hello world
. を引用符で囲んでみました。
"$test"
もうまくいきません。
解決方法は?
使用方法
IFS= read var << EOF
$(foo)
EOF
あなた
できる
トリック
read
のように、パイプから受け取るようにします。
echo "hello world" | { read test; echo test=$test; }
とか、こんな風に関数を書いてもいいんです。
read_from_pipe() { read "$@" <&0; }
しかし、それでは意味がない。変数の割り当てが長続きしないかもしれないのだ。パイプラインはサブシェルを生成し、そこで環境は参照ではなく値で継承されることがあります。そのため
read
はパイプからの入力に悩まされることはありません。
ご参考までに。 http://www.etalabs.net/sh_tricks.html は、ボーンシェルの奇妙さと非互換性に対抗するために必要な粋なコレクション、shです。
関連
-
[解決済み] gzip: stdin: not in gzip format tar: 子プロセスがステータス 1 を返しました。エラーは回復不可能:現在終了中
-
[解決済み】sed を使用して部分文字列を抽出する方法
-
[解決済み】Apacheサーバーがクラッシュし続ける。"caught SIGTERM, shutting down"
-
[解決済み] モスキートクライアントの取得が接続を拒否
-
[解決済み] ftp: 名前またはサービスが不明
-
[解決済み] 複数行の出力をBash変数に取り込む
-
[解決済み] MinikubeでローカルのDockerイメージを使用するには?
-
[解決済み】Bashスクリプトでクリップボードにパイプを接続する
-
[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。
-
[解決済み】Windows 7 x64でGit Bashの動作が極端に遅くなる件
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SVNパッチの作成と適用方法について教えてください。
-
[解決済み] "grep -q" のポイントは?
-
[解決済み] insmod エラー: './hello.ko' を挿入: -1 無効なモジュール形式".
-
[解決済み] あるパターンの前にテキストを追加する際に、大文字小文字を無視してsedを使用する
-
[解決済み] Linux/Ubuntu のセットです。不正なオプション -o pipefail
-
[解決済み] LinuxでXcodeを動かせるか?
-
[解決済み] sudoとnohupを連動させる
-
[解決済み] ls: 読み込みディレクトリ .: 入出力エラー [閉じた].
-
[解決済み] sudo: must be setuid root" というメッセージが出るが、sudo は既に root が所有している [closed] 。
-
[解決済み】Bashでファイルや標準入力から読み込む方法