シェルスクリプトでSASマクロ変数を解析する方法

シェルスクリプトでSASマクロ変数を解析する方法

SASマクロのXコマンドでシェルスクリプトを実行しています。 SASマクロで定義されたマクロ変数をシェルスクリプトで使用したいと思います。そのマクロ変数をシェルスクリプトに引数として渡すと、Xコマンドでそれを解析できることがわかります。

たとえば、次はうまく動作することを知っています。

%macro a;

%let var1=test;

X "abc.sh &var1";

%mend;
%a;

次のシェルスクリプトを使用します。

echo "value is $1" >  myfile.txt

私が望むもの:

%macro a;

%let var1=test;

X "abc.sh";

%mend;

%a;

次のシェルスクリプトを使用します。

echo "value is &val1" >  myfile.txt

シェルスクリプトでマクロ変数を解決する方法はありますか?調査してみましたが、何も見つかりませんでした。

答え1

&val1例で示唆したように、シェルは外部マクロシステム(たとえば)の変数を解析できません。

あなたできる環境でシェル使用量の値を取得します。たとえば、VAR1contentを含む変数をエクスポートする場合は、test次のように使用できますabc.sh

echo "value is $VAR1" >myfile.txt

(シェルから変数をエクスポートする一般的な規則なので、すべて大文字を使用します。エクスポート$var1した名前も小文字である限り、小文字でも大丈夫です。)

SASから変数をエクスポートする方法を知る必要があります。 (SASの経験はありません。)〜らしいSASはsetenvステートメントまたはコマンドをサポートします。setenvこれは通常、一部のシェルから変数をエクスポートするために使用されるため、変数を直接エクスポートしようとするとそこを見てみましょう。

関連情報