![bash 脚本可以添加到 zsh 的上下文中吗?](https://linux22.com/image/220276/bash%20%E8%84%9A%E6%9C%AC%E5%8F%AF%E4%BB%A5%E6%B7%BB%E5%8A%A0%E5%88%B0%20zsh%20%E7%9A%84%E4%B8%8A%E4%B8%8B%E6%96%87%E4%B8%AD%E5%90%97%EF%BC%9F.png)
我最近从 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 中是必需的。
由于该脚本是“点脚本”(旨在获取源代码),因此您可以#!
从中删除 - 行。该行没有任何效果,并且将始终被解释为注释。
也可以看看: