2

私は Unix でいくつかの成長痛を経験しています。私の質問:

シェルですべてのユーザー定義変数を出力できるようにしたいと考えています。シェルで次のことをするとします。

$ x=9
$ y="Help"
$ z=-18
$ R="My 4th variable"

印刷方法は次のとおりです。

xyz R

4

3 に答える 3

3

最初に実行時に変数を で記録しset、後で比較してどの変数が追加されたかを確認する必要があります。例:

#!/bin/bash

set | grep -E '^[^[:space:]]+=' | cut -f 1 -d = | sort > /tmp/previous.txt

a=1234
b=1234

set | grep -E '^[^[:space:]]+=' | cut -f 1 -d = | sort > /tmp/now.txt

comm -13 /tmp/previous.txt /tmp/now.txt

出力:

a
b
PIPESTATUS

シェルによって生成された他の変数がまだありますが、ユーザーによって宣言されていないことに注意してください。でフィルタリングできますgrep -v。シェルにも依存します。

追加: grep と cut は、単純に sed を 1 つだけにすることができます。sed -n 's/^\([^[:space:]]\+\)=.*/\1/p'

于 2013-09-14T16:42:23.313 に答える