34108


`sudo`した後の環境変数の値を知りたいです。たとえば、rootユーザーの`$PATH`の中身を出力したいです。

試しに`$FOO`の中身を知りたいと思って単純に`echo`してもダメで、これだと現在のユーザーにおける`$FOO`が展開されてから`sudo`の先のコマンドが実行されてしまいます。

[code]

    $ FOO=bar
    $ sudo FOO=foo echo $FOO
    bar
    $
    
[/code]

一体どのように書けば実現できるのでしょうか？


CC BY-SA 3.0
2017-04-18T03:37:38.207
34089
2018-10-10T01:57:20.687
2018-10-10T01:57:20.687
3060
19110
question
bash shellscript sudo
rootユーザーでの環境変数の値を確認する

[code]

    $ sudo FOO=foo env |grep '^FOO='
    
[/code]

環境変数に改行が含まれていると駄目だけど。


CC BY-SA 3.0
2017-04-18T04:08:50.883
34091
2017-04-18T04:38:22.537
2017-04-18T04:38:22.537
3061
3061
34089
answer

[code]

    sudo printenv FOO
    
[/code]

エスケープも変数中の改行も気にする必要がありません。

`echo $FOO`は$FOOに含まれる文字によっては意図せぬ結果を招きます

[code]

    % FOO='*'
    % echo $FOO
    1.pdf 2.txt 3.png ...
    
[/code]


CC BY-SA 3.0
2017-04-19T00:34:58.617
34108
2017-04-19T00:34:58.617
5793
34089
answer