質問: * nixのオブジェクト指向シェル 序文:私はbashが大好きで、なんらかの論争や聖戦を始めるつもりはありません。うまくいけば、これは非常に単純な質問ではありません。この質問は、スーパーユーザーの この投稿 にいくらか関連していますが、opが彼の求めていることを本当に理解していないと思います。 freebsd、linux、os xではbash、windowsではcygwinを使用しています。私は最近、windowsでpowershellを使用した広範な経験も持っています。* nix用のシェルはありますか?すでに利用可能または作業中ですが、bashと互換性がありますが、オブジェクト指向のスクリプトのレイヤーをミックスに追加しますか?私が知っている唯一のことは、pythonコンソールです。ただし、私の知る限り、標準のシェル環境へのアクセスは提供されていません。たとえば、cd ~とlsだけではなく、pythonコンソール内でchmod +x fileすることはできません。これらのタスクを実行するには、標準のunixバイナリではなくpythonを使用するか、pythonコードを使用してバイナリを呼び出す必要があります。そのようなシェルは存在しますか?
回答: ## implemantion of base class function class() { base=${funcname} this=${1} class_setcuuid $this for method in $(compgen -a function) do export ${method/#$base\_/$this\_}="${method} ${this}" done } function copycuuid() { export ${2}_cuuid=$(echo $(eval "echo \$${1}_cuuid")) } function class_setcuuid() { export ${1}_cuuid=$(uuid) } function class_getcuuid() { echo $(eval "echo \$${2}_cuuid") } function class_setproperty() { export ${1}_${2}=${3} } function class_getproperty() { echo $(eval "echo \$${1}_${2}") } function class_method() { echo "function ${1}_${2}() { echo null } " > /tmp/t.func . /tmp/t.func rm /tmp/t.func } function class_setmethod() { export ${1}_${2}=${1}_${2} } function class_getmethod() { $(eval "echo \$${1}_${2}") } function class_equals() { base="class" this=${2} copycuuid ${1} ${2} for method in $(compgen -a function) do export ${method/#$base\_/$this\_}="${method} ${1}" done } 参照に基づいてbashにooの概念を導入しようとしたところ http://hipersayanx.blogspot.in/2012/12/object-oriented-programming-in-bash.html source ./oobash class person $person_setproperty name "saranyan" $person_setproperty age 10 $person_setproperty sex "male" function person_show() { $person_getproperty name $person_getproperty age $person_getproperty sex } $person_setmethod show $person_equals person1 $person1_getmethod show $person1_equals person3 $person_getcuuid person $person_getcuuid person1 $person_getcuuid person3