2016-07-02 11 views
1

に依存して確認し、シェルのエイリアスの定義は、そのようconfigurations.nixファイル内に定義することができますです:シェルのエイリアスを宣言NixOSでパッケージ

environment.shellAliases = { 
    "my_some_cmd" = "some_cmd -flag 123"; 
} 

これは呼ばコマンドは(some_cmdこちら)場合にも割り当てられますシステムでは使用できません。言う、このコマンドはパッケージに含まれています。したがって、パッケージがインストールされている場合にのみ別名を割り当てる必要があることを宣言することが望ましいでしょう。

どうすればいいですか?私はちょうどラップif文で動作するか、これをアーカイブする他の方法がありますか?

if文を使用する方法は、どのように実装できますか?

+0

、および繰り返し使用してください。 – alexis

+0

これは簡単なことでしょうか?つまり、単語がコマンドかパラメータかを検出する方法です。例: 'alias my = "cmd a_file $(echo xyz)"'。しかし、私はあまりbashスクリプトにはあまり慣れていないので、おそらく私はsthを欠いている。 –

+0

エイリアス名とコマンド名のどちらかが同じであるか、確認するコマンドの存在を伝える必要があります。 – alexis

答えて

0

あなたは、例をコマンドのフルパスを使用してパッケージをインストールする必要性を回避することができますいくつかの関連するコマンドがパスに見つからない場合、エイリアスの作成を自動化するシェル関数を書く

environment.shellAliases = { 
    "colored-tree" = "${pkgs.tree}/bin/tree -C"; 
}; 
+0

これは非常に良い解決策のように見えます! –

関連する問題