如何解决我怎样才能运行这个 bash 脚本需要一起添加两个注释
alias git-repo="xdg-open" + "git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g'"
我想在浏览器中打开链接我可以得到这个脚本第二部分的链接,但我只需要像前缀一样添加 xdg-open
解决方法
您可以在别名中使用由 ;
分隔的两个命令:
alias e="echo 1; echo 2"
e
1
2
但看起来您想使用 git config
的输出作为 xdh-open
的输入。在这种情况下,您需要使用 $(...)
。将三个 sed
命令合并为一个:
alias git-repo="xdg-open $(git config --get remote.origin.url | sed -e 's/:/\//g' -e 's/ssh\/\/\///g' -e 's/git@/https:\/\//g')"
但是,如果您像这样定义别名,git config
会在您定义别名时运行,您可能希望在实际使用别名时发生这种情况。所以把它放在单引号中:
alias git-repo="xdg-open '$(git config --get remote.origin.url | sed -e 's/:/\//g' -e 's/ssh\/\/\///g' -e 's/git@/https:\/\//g')'"
就像@KamilCuk 在评论中所说的,如果它变得更复杂,shell 脚本或函数可能会更好:
function git_repo {
url=$(git config --get remote.origin.url | sed -e 's/:/\//g' -e 's/ssh\/\/\///g' -e 's/git@/https:\/\//g')
echo "$url"
xdg-open "$url"
}
您可以将该函数放入例如 ~/.bashrc
或您source
的任何其他文件中。
作为脚本:
set -eu
url=$(git config --get remote.origin.url | sed -e 's/:/\//g' -e 's/ssh\/\/\///g' -e 's/git@/https:\/\//g')
echo "$url"
xdg-open "$url"
这更易于阅读和使用,您的编辑器可以突出显示语法,如果出现异常,shellcheck 可以警告您。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。