bash関数でcdを実行すると、そのようなファイルやディレクトリはなく、パスは実際には正確です。

bash関数でcdを実行すると、そのようなファイルやディレクトリはなく、パスは実際には正確です。

だから私はBashについてはよくわかりませんが、この問題のためにパニックになりました。このswitchto機能は、コマンドラインからプロジェクト間を簡単に移動する方法を提供します。

source ~/.profile
export PATH=~/bin:$PATH
export PATH=~/.composer/vendor/bin:$PATH
alias composer="php /usr/local/bin/composer.phar"

switchto () (
        cd "~/Projects/$1.com/wp-content/themes/$1"
)

私にとってはすべてが正しいようですが、実行すると常に次のように表示されますswitchto example

-bash: cd: ~/Projects/example.com/wp-content/themes/example: No such file or directory

ディレクトリが実際に存在することを再確認しました。私はbashに初めて触れたので、これが私が間違っている簡単なことであるかどうかはわかりません。

ベストアンサー1

引用した場合、チルダは~ホームディレクトリに展開されません。

https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html

Tilde Expansion

単語が引用符で囲まれていないチルダ(~)で始まる場合は、最初に引用符で囲まれていないスラッシュまでのすべての文字(または引用符で囲まれていないスラッシュがない場合はすべての文字)が考慮されます。チルダプレフィックス。チルダプレフィックスに文字が引用されていない場合、チルダプレフィックスでチルダの後に続く文字は可能な文字と見なされます。ログイン名。このログイン名が空の文字列の場合、チルダはシェル変数の値に置き換えられますHOME。設定しないと、HOMEシェルを実行しているユーザーのホームディレクトリが置き換えられます。それ以外の場合、チルダプレフィックスは指定されたログインに関連付けられているホームディレクトリに置き換えられます。

したがって、(中括弧で)以下を使用できます。

switchto () {
    cd ~/"Projects/$1.com/wp-content/themes/$1"
}

PATH次の2つの定義を組み合わせることができます。

  export PATH=~/bin:~/.composer/vendor/bin:$PATH

おすすめ記事