We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
这是去年朋友跟我交流的一个问题,最近在整理吃灰笔记时挖出来的(当时写了笔记,但没写完)
一般来说我们的项目名就是当前的文件夹名称
PWD
获取到当前工作目录的路径后,可以使用以下两种方法对其进行处理
使用 basename 命令
basename
$(basename $PWD) # 在终端中输出 echo $(basename $PWD)
使用字符串操作
${PWD##*/} # 在终端中输出 echo ${PWD##*/}
使用 zsh 内置方法
zsh
echo $(git_current_branch)
使用 git 命令
git
git branch --show-current
只介绍最新的命令,需要兼容老版本可以看这里 获取当前 git 分支
复制到剪贴板的命令
pbcopy
clip
再配合 echo 与管道操作符 | 即可食用
echo
|
echo "茂 茂" | pbcopy
再结合刚刚的知识点,实现复制项目信息到剪切板
echo "项目名: $(basename $PWD)\n分支名: $(git_current_branch)" | pbcopy
为了方便使用,可以在 shell 配置文件中配置别名或定义方法
shell
打开 ~/.zshrc 配置文件
~/.zshrc
配置别名
alias c="echo -n \"项目名: ${PWD##*/}\n分支名: $(git_current_branch)\" | pbcopy"
定义方法
c() { echo -n "项目名: ${PWD##*/}\n分支名: $(git_current_branch)" | pbcopy }
经历后面一段时间的学习和打磨后,最终版本如下:
.git
# 复制当前信息(项目名和分支名)方便提测 c() { if [[ -d .git ]]; then local data="项目名: $(basename $PWD)\n分支名: $(git_current_branch)" if echo -n $data | pbcopy; then echo -e "$data\n\033[32m复制成功\033[0m" else echo -e "$data\n\033[33m复制失败,请检查 pbcopy 是否可用\033[0m" fi else echo "\033[33m当前目录不存在 .git 配置\033[0m" fi }
使用效果
如果只关心将项目名和分支名复制到剪贴板,可直接使用配置别名版本
The text was updated successfully, but these errors were encountered:
No branches or pull requests
使用 shell 脚本复制项目信息到剪切板
实现步骤
1. 获取当前项目名
一般来说我们的项目名就是当前的文件夹名称
PWD
: 表示当前工作目录的路径(一个常用的环境变量)获取到当前工作目录的路径后,可以使用以下两种方法对其进行处理
使用
basename
命令使用字符串操作
2. 获取当前分支名
使用
zsh
内置方法使用
git
命令3. 复制到剪切板
复制到剪贴板的命令
pbcopy
: macOS 系统clip
: Windows 系统再配合
echo
与管道操作符|
即可食用再结合刚刚的知识点,实现复制项目信息到剪切板
4. 简化使用命令
为了方便使用,可以在
shell
配置文件中配置别名或定义方法打开
~/.zshrc
配置文件配置别名
定义方法
完整版本
经历后面一段时间的学习和打磨后,最终版本如下:
.git
目录basename
命令(编辑器高亮显示有问题,看着难受)如果只关心将项目名和分支名复制到剪贴板,可直接使用配置别名版本
The text was updated successfully, but these errors were encountered: