env
コマンドを使用して、このちょっとした楽しみをシミュレートできます
env Clear\ Workspace=true bash
これにより、環境変数が設定されたシェルが表示されます。
環境変数の値を元に戻すハックな方法は、bash 4.0 までは機能するはずです。
declare -p Clear\ Workspace | sed -e "s/^declare -x Clear Workspace=\"//;s/\"$//"
4.0 以降の Bash バージョンでは代わりにエラーが返され、そのような環境変数をその方法で抽出することはできません。
それ以外は、ネイティブコードプログラムまたはスクリプト言語を使用してそれを引き出す必要があります。
ruby -e "puts ENV['Clear Workspace']"
これはハックがはるかに少なくなります...ルビーがない場合も
perl -e 'print "$ENV{\"Clear Workspace\"}\n";'
また
python -c 'import os; print os.environ["Clear Workspace"]'
そして、これがネイティブ コード バージョンです。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv, char **envp)
{
char **env;
char *target;
int len;
if (argc != 2)
{
printf("Syntax: %s name\n", argv[0]);
return 2;
}
len = strlen(argv[1]);
target = calloc(len+2,sizeof(char));
strncpy(target,argv[1],len+2);
target[len++] = '=';
target[len] = '0';
for (env = envp; *env != 0; env++)
{
char *thisEnv = *env;
if (strncmp(thisEnv,target,len)==0)
{
printf("%s\n",thisEnv+len);
return 0;
}
}
return 1;
}