変数に保存されたパスを入力するときに$文字を省略する方法は?

変数に保存されたパスを入力するときに$文字を省略する方法は?

私がよく使うディレクトリがあります。仮定は次のとおりです。

/etc/insserv.conf.d/testname

私の変数を設定しました/root/.bashrc

mydir=/etc/insserv.conf.d/testname  

このコマンドを使用してこのディレクトリを開くことができます。

cd $mydir

しかし、私はこのキャラクターがあまり好きではありません$。これを達成するための解決策はありますか?私は言う:を介してこのディレクトリを開きたいと思いますcd mydir。大丈夫ですかUbuntu 16.04

答え1

あなたはオプションを探していますcdable_varsshopt -s cdable_varsbashを使用している場合(setopt cdablevarszshの場合)、それを実行して有効にします。その後はcd mydir簡単です。

ノートcd mydir同じ名前のファイルまたはディレクトリを含むディレクトリで操作を実行しようとすると、シェルは変数を拡張するのではなく、現在のディレクトリのファイルまたはディレクトリオブジェクトを使用しようとします。

答え2

どうですか?

mydir

変数を定義し、すでに行ったように関数を作成するだけです。

mydir=/etc/insserv.conf.d/testname
mydir(){ cd "$mydir"; }

完璧。

別の方法は、別名を使用することです。

alias mydir='cd "$mydir"'

答え3

グローバルエイリアスを使用する必要があります。 bashはこれをサポートしていないようですが、zshではうまく機能します。

デモ

<code>% alias -g asd="bsd"; echo asd </code> -> <code>bsd</code>

インストールする

$ sudo apt install zsh

私と同じ姿を持つには

  • Oh My Zshをインストールします。

    sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    
  • 無視するにはテーマを変更してください。

    sed 's/^ZSH_THEME=".*"$/ZSH_THEME="agnoster"/' -i .zshrc
    
  • そしてAgnosterが機能するようにするには、Powerlineフォントをインストールします。

    curl https://pastebin.com/raw/nD4DTpuF | bash
    
  • 構文ハイライトプラグインをインストールします。

    • ダウンロード

      git clone git://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/custom/plugins/zsh-syntax-highlighting
      
    • そして適用してください:

      sed 's/^plugins=\((.*)\)$/plugins=(\1 zsh-syntax-highlighting)'
      
    • 最後に、構成設定を再ロードします。

      source .zshrc
      

申し訳ありません。このチュートリアルは長すぎますが、楽しくお楽しみください。

関連情報