[解決済み] Bashでコマンドの前に環境変数を設定すると、パイプ内の2番目のコマンドで動作しない
2022-03-21 05:31:53
質問
あるシェルでは、通常、変数を設定してからコマンドを実行します。最近、コマンドに変数定義を前置する概念を知りました。
FOO=bar somecommand someargs
これはうまくいく...ような気がします。LC_*変数を変更しているときはうまくいきません(コマンドには影響するようですが ではなく の引数、例えば'[a-z]'の文字範囲)、またはこのように他のコマンドに出力をパイプする場合です。
FOO=bar somecommand someargs | somecommand2 # somecommand2 is unaware of FOO
somecommand2 の前に "FOO=bar" を付けることもできますが、これは動作しますが、不要な重複を追加し、変数によって解釈される引数 (たとえば '[a-z]') には役に立ちません。
では、これを1行で行うには、何か良い方法はないでしょうか?
というオーダーで何か考えています。
FOO=bar (somecommand someargs | somecommand2) # Doesn't actually work
良い回答がたくさんありました 目標はこれをワンライナーにすることで、できれば "export" を使わないで済むようにすることです。Bashへの呼び出しを使った方法が全体的に一番良かったのですが、"export"が入った親文字のバージョンはもう少しコンパクトでした。パイプではなく、リダイレクトを使う方法も面白いですね。
どのように解決するのか?
FOO=bar bash -c 'somecommand someargs | somecommand2'
関連
-
[解決済み] Bashで$()と`の違いはあるのでしょうか?重複] [重複
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] コマンドラインからすべての環境変数をリストアップ
-
[解決済み] Bashの変数代入でCommand not foundエラーが発生する
-
[解決済み] WindowsのPATH環境変数にディレクトリを追加する
-
[解決済み] 特定のコマンドを無視するBashのエラー
-
[解決済み] Windowsのコマンドプロンプトから環境変数を更新するコマンドはありますか?
-
[解決済み] 取得するNodeの環境変数を設定する
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Homebrewは最新ですが、`could not link` + `delete path` のエラーは気にしなくていいのでしょうか?
-
[解決済み] あいまいなリダイレクト」エラーが発生する
-
[解決済み] bashスクリプトで変数の束縛を解除
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] シェルスクリプトでこのエラーを解決するにはどうしたらよいでしょうか。"読み取り。Illegal option -t "というエラーはどうすれば解決できますか?
-
[解決済み] AWS CLIのプロファイルを一時的に切り替えるには?
-
[解決済み] bashでのDiffコマンド
-
[解決済み] Grep 'binary file matches'. どうすれば正常なgrepの出力が得られるか?[重複]する
-
[解決済み] 環境変数を表示/エコーするには?
-
[解決済み] sudo使用時に環境変数を保持する方法