env
コマンド
お兄ちゃん!
環境変数で変数を
シェルスクリプトに
渡せるのはわかったけど
シェルスクリプトをたくさん作ると
環境変数だらけになっちゃうよ!
なんとかならないかな?
今回はそんな問題を解決する
env
を説明するよ!
env
は
指定された変数名の変数を
コマンドに渡して実行するよ
environment の略なんだ
env [オプション]... [変数名=値]... [コマンド]
へぇ…環境変数でない普通の変数もコマンドに渡せるんだ!
最近のシェルは
env
と同等の機能を持っているよ単に変数を渡したいだけなら以下のように書けるんだ変数名=値... コマンド
ただコマンドの前に変数を指定するだけでできるの?!
できるかどうかは試してみよう!
前回みどりが改良した
greet
スクリプトは以下のようなものだったね#!/bin/bash
if [ -z "$NAME" ]
then
echo -n "名前を入力して下さい: "
read NAME
fi
echo "こんにちは、$NAMEさん!"
うん!
前回は実行するスクリプトに
NAME
環境変数を渡していたけど今回は NAME
変数を渡してみよう!NAME=みどり ./greet
本当に
NAME
変数が渡っていればその値が使われるはずだけど…こんにちは、みどりさん!
おお!期待どおりに動くね!
env
を引数なしで実行すると宣言されている変数一覧を表示するよenv
似たようなコマンドではおなじみの操作だね!
コマンド | 表示内容 |
---|---|
readonly | 読み取り専用変数 |
export | 環境変数 |
env | 変数(上記も含む) |
今回はコマンドに変数を渡す方法を学んだよ!
変数名=値... コマンド
と書くだけなんだ!一部のコマンドは変数で挙動を変えるよ
export
を使うと以降のコマンドにも影響があるので今回限りで変数を渡したい場合に便利な書き方なんだ