エイリアスなしで変数にコマンドを割り当てる

エイリアスなしで変数にコマンドを割り当てる

私はbashでalias

g=date
$g
Mon Jun 27 13:00:40 MYT 2016

これはうまくいきます。別の例は次のとおりです。

jj="ping yahoo.com"
$jj
PING yahoo.com (98.138.253.109) 56(84) bytes of data.
64 bytes from ir1.fp.vip.ne1.yahoo.com (98.138.253.109): icmp_seq=1 ttl=41 time=347 ms
64 bytes from ir1.fp.vip.ne1.yahoo.com (98.138.253.109): icmp_seq=2 ttl=41 time=345 ms
64 bytes from ir1.fp.vip.ne1.yahoo.com (98.138.253.109): icmp_seq=3 ttl=41 time=345 ms

このバージョンのbashを使用していますbash --version GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)

調べたスタック交換そしてTLDP吸収値しかし、私たちがこれを行うことができることが見つかりませんでした。それでは、これはbashの新機能ですか、それとも見落とされていますか?これが考慮されるか。コマンドの置き換え

ベストアンサー1

対話型を使用すると、シェルは端末装置から入力行を読み取ります。 1行を入力した後、Fに分割してトークン(単語と演算子).これにより、トークンまたは単語が特定の順序で展開または解析されます。

注:通常、Advanced Bash Scripting Guide、オンラインチュートリアル、書籍、Stack Exchangeなどの補助ソースではなく、プロジェクトドキュメントや業界仕様などの正式な情報ソースを参照する方が良いです。これらの補助ソースは、概念をより簡単な言語で紹介して説明するのに役立ちますが、一般的に公式文書を完成または置き換えるためのものではありません。補助ソースの情報も最新の情報ではない可能性があります。

この場合、簡単なコマンドを解析するためのPOSIX仕様指摘

  1. 変数の割り当てやリダイレクト以外の単語は拡張する必要があります。拡張後に残りのフィールドがある場合、最初のフィールドはコマンド名として扱われ、残りのフィールドはコマンドの引数です。

これ簡単なコマンド拡張の Bash マニュアルセクションも指摘した

  1. 変数の割り当てやリダイレクト以外の単語は拡張されます(シェル拡張を参照)。拡張後に残りの単語がある場合、最初の単語はコマンド名として扱われ、残りの単語は引数として扱われます。

おすすめ記事