我想声明一些快捷命令来在我的各种编码项目之间切换,所以我想出了以下脚本。
projects=$(ls -d ~/Workspace/*/)
prefix="/Users/myuser/Workspace/"
for f in $projects
do
temp=${f#$prefix}
temp=${temp/%\//}
c="alias $temp='cd $f'"
echo $c
eval $c
done
Run Code Online (Sandbox Code Playgroud)
我把它放在我的主文件夹中一个名为的文件.workspace-shotcuts.sh
中,然后我chmod +X .workspace-shotcuts.sh
它。当我运行它时,使用./.workspace-shotcuts.sh
我得到
alias project1='cd /Users/myuser/Workspace/project1/'
alias project2='cd /Users/myuser/Workspace/project2/'
Run Code Online (Sandbox Code Playgroud)
在控制台中。但是别名没有声明(zsh: command not found: project1
)。
同样在我的.zshrc
文件末尾,我添加了/bin/sh .workspace-shotcuts.sh
,它提供了相同的输出,但仍然没有别名。
任何人都可以告诉我我缺少什么?我想指出的是,我不是一个出色的 *nix 用户,因此您可能需要对我进行一些 ELI5 操作。
编辑:
有人建议我source
改用,我已经这样做了,但这是我收到的错误消息:
(eval):2: permission denied: /Users/myuser/Workspace/project1/
(eval):3: permission denied: /Users/myuser/Workspace/project2/
(eval):4: permission denied: /Users/myuser/Workspace/project3/
(eval):5: permission denied: /Users/myuser/Workspace/project4/
(eval):6: permission denied: /Users/myuser/Workspace/project5/
(eval):7: permission denied: …
Run Code Online (Sandbox Code Playgroud)