システム パスを返す短いシェル プログラムがあります。私がやりたいのは、bash エイリアスを使用してそのパスに CD することです。
私の理想のアウトプットは
~$ pwd
/home/username
~$ mark home
~$ cd /
/$ pwd
/
/$ place home
~$ pwd
/home/username
「マーク」部分は機能していますが、「場所」は機能していません。
alias place="cd \"~/marker.sh go $@\";"
私の考えは、の出力にcdしたいということです~/marker.sh go $@
問題は、bash がこれを 1 つのコマンドとして解釈し、エラーが発生することです。
-bash: cd: ~/marker.sh go : No such file or directory
-bash: home: command not found
これは、シェルがエイリアス全体を文字列として解析していることを意味すると思います。
エイリアス $() や `` などのシェル スクリプト部分をさまざまな形で引用してみましたが、bash の起動時にスクリプトを実行しようとするか、まったく実行せずに文字列のままです。
私は主に bash コマンドを学習するためにこれをプログラミングしていますが、この 1 つの部分がわかりません!
それが重要な場合、iTerm 1.0.0.20130624 で OSX 10.9 を実行しています。
編集:スクリプト内で cd が機能しないことを理解しています。そのため、プログラムを使用して正しいパスを返し、組み込みのエイリアス システムを使用してディレクトリを実際に変更しようとしています。