bashスクリプトをzshのコンテキストに追加できますか?

bashスクリプトをzshのコンテキストに追加できますか?

私は最近bashからzshに移行しました。

セッションの秘密鍵を取得するtoken_refresh.shには、次のスクリプトを使用しました。ssh-add

#!/usr/bin/env bash
echo "configuring ssh access.."
eval "$(ssh-agent -s)"
ssh-add ./my-key

ただし、dir / sshのzshからこのコマンドを直接実行することはできません。

$ ls
my-key  my-key.pub  token_refresh.sh
$ . token_refresh.sh
.: no such file or directory: token_refresh.sh

以下を使用してbashスクリプトを実行できます。

bash token_refresh.sh

ssh-addただし、これはbashセッション(bashセッションのコア)を開始してから終了するものではありません。

このスクリプトをbashとzshで移植可能に実行するにはどうすればよいですか?

答え1

ファイルを受け取るときのパスに言及してください:

. ./token_refesh.sh

これは、ドットコマンドがデフォルトで現在のディレクトリを見つけないシェルで必要です。

スクリプトは「ドットスクリプト」(ソースコードを取得するように設計されている)なので、#!行を削除できます。この行は何の効果もなく、常にコメントとして解釈されます。

また見なさい:

関連情報