我最近从 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
但是,这不是启动 bash 会话(ssh-add
bash 会话的关键),然后退出。
如何在 bash 和 zsh 中可移植地运行此脚本?
答案1
当您获取文件时请提及路径:
. ./token_refesh.sh
这在默认情况下 dot 命令不查找当前目录的 shell 中是必需的。
由于该脚本是“点脚本”(旨在获取源代码),因此您可以#!
从中删除 - 行。该行没有任何效果,并且将始终被解释为注释。
也可以看看: