Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash “有吗?”;以“开始”;ZSH中的别名?_Bash_Alias_Zsh_Oh My Zsh_Startswith - Fatal编程技术网

Bash “有吗?”;以“开始”;ZSH中的别名?

Bash “有吗?”;以“开始”;ZSH中的别名?,bash,alias,zsh,oh-my-zsh,startswith,Bash,Alias,Zsh,Oh My Zsh,Startswith,我为我经常使用的文件夹定义了几个别名;e、 g alias x="cd /home/username/git/github/user/project" 因此,在终端中键入x直接将我带到项目文件夹 我认为如果字符串仅以别名开头,那么最好定义一个也可以使用的别名;e、 g.如果我定义 starts-with-alias x="cd /home/username/git/github/user/project" 打字 x/abc 我要去: /home/username/git/github/us

我为我经常使用的文件夹定义了几个别名;e、 g

alias x="cd /home/username/git/github/user/project"
因此,在终端中键入
x
直接将我带到项目文件夹

我认为如果字符串仅以别名开头,那么最好定义一个也可以使用的别名;e、 g.如果我定义

starts-with-alias x="cd /home/username/git/github/user/project"
打字

x/abc
我要去:

/home/username/git/github/user/project/abc

使用标准shell函数,您可以执行以下操作

x() { cd /home/username/git/github/user/project/"$1"; }
x
会带你去那里,
x abc
会带你去
/home/username/git/github/user/project/abc

不完全是你想要的,但非常接近


免责声明:仅在
bash
下测试;标准语法可能会有所不同,zsh也有一种。

使用标准shell函数,您可以执行以下操作

x() { cd /home/username/git/github/user/project/"$1"; }
x
会带你去那里,
x abc
会带你去
/home/username/git/github/user/project/abc

不完全是你想要的,但非常接近

免责声明:仅在
bash
下测试;标准语法可能会有所不同,zsh也有一种。

我建议使用别名,可能与选项结合使用

静态命名目录由名称后面的
~
表示(其中包含任何字母数字字符、
\uu
-
)。通常,它们用于系统上用户的主目录,这意味着
~someuser
将被用户的实际主目录
someuser
替换

zsh
中,您还可以使用以下两种方法之一定义自己的静态命名目录:

  • 使用以
    /
    开头的值定义shell参数:

    x=/home/username/git/github/user/project
    
  • 或者对参数
    -d
    使用
    hash
    命令(工作原理与alias类似):

这两种方法之间的唯一区别是,第一种方法(显然)提供了一个shell参数,您可以在命名目录未展开(例如,在带引号的字符串中)或导出为环境变量的情况下使用该参数。 无论使用哪种方法,您现在都可以访问名为
~x
的目录
/home/username/git/github/user/project

% cd ~x
% pwd
/home/username/git/github/user/project
它也是路径的第一个组件:

% cd ~x/abc
% pwd
/home/username/git/github/user/project/abc
与别名相比,它还有一个额外的优点,就是它可以与其他命令一起使用,而不仅仅是
cd

% touch ~x/somefile
% echo foobar > ~x/somefile
% cat ~x/somefile
foobar

启用选项
AUTO_CD
后,
zsh
将自动更改为一个目录,如果它是代替命令发出的:

% setopt autocd
% ~x
% pwd
/home/username/git/github/user/project
% ~x/abc
% pwd
/home/username/git/github/user/project/abc

启用选项
CDABLE_VARS
时,如果
cd
命令的参数(或启用
AUTO_cd
的隐含
cd
)不是目录且不是以
/
开头,则
zsh
将尝试展开参数,就像它是以
~/code>开头一样:

% setopt cdablevars
% cd x
% pwd
/home/username/git/github/user/project
% cd x/abc
% pwd
/home/username/git/github/user/project/abc

启用了
AUTO_CD
CDABLE_VARS
,您可以使用命名目录,就像使用
CD
的别名一样,还可以直接访问子目录

% setopt autocd cdablevars
% x
% pwd
/home/username/git/github/user/project
% x/abc
% pwd
/home/username/git/github/user/project/abc
注意:如果未在
cd
的上下文中使用命名目录(通过
AUTO\u cd
显式或隐式),则名称前面需要加上
~
,以便展开:

% echo x/abc
x/abc
% echo ~x/abc
/home/username/git/github/user/project/abc
我建议使用替代别名,可能与选项结合使用

静态命名目录由名称后面的
~
表示(其中包含任何字母数字字符、
\uu
-
)。通常,它们用于系统上用户的主目录,这意味着
~someuser
将被用户的实际主目录
someuser
替换

zsh
中,您还可以使用以下两种方法之一定义自己的静态命名目录:

  • 使用以
    /
    开头的值定义shell参数:

    x=/home/username/git/github/user/project
    
  • 或者对参数
    -d
    使用
    hash
    命令(工作原理与alias类似):

这两种方法之间的唯一区别是,第一种方法(显然)提供了一个shell参数,您可以在命名目录未展开(例如,在带引号的字符串中)或导出为环境变量的情况下使用该参数。 无论使用哪种方法,您现在都可以访问名为
~x
的目录
/home/username/git/github/user/project

% cd ~x
% pwd
/home/username/git/github/user/project
它也是路径的第一个组件:

% cd ~x/abc
% pwd
/home/username/git/github/user/project/abc
与别名相比,它还有一个额外的优点,就是它可以与其他命令一起使用,而不仅仅是
cd

% touch ~x/somefile
% echo foobar > ~x/somefile
% cat ~x/somefile
foobar

启用选项
AUTO_CD
后,
zsh
将自动更改为一个目录,如果它是代替命令发出的:

% setopt autocd
% ~x
% pwd
/home/username/git/github/user/project
% ~x/abc
% pwd
/home/username/git/github/user/project/abc

启用选项
CDABLE_VARS
时,如果
cd
命令的参数(或启用
AUTO_cd
的隐含
cd
)不是目录且不是以
/
开头,则
zsh
将尝试展开参数,就像它是以
~/code>开头一样:

% setopt cdablevars
% cd x
% pwd
/home/username/git/github/user/project
% cd x/abc
% pwd
/home/username/git/github/user/project/abc

启用了
AUTO_CD
CDABLE_VARS
,您可以使用命名目录,就像使用
CD
的别名一样,还可以直接访问子目录

% setopt autocd cdablevars
% x
% pwd
/home/username/git/github/user/project
% x/abc
% pwd
/home/username/git/github/user/project/abc
注意:如果未在
cd
的上下文中使用命名目录(通过
AUTO\u cd
显式或隐式),则名称前面需要加上
~
,以便展开:

% echo x/abc
x/abc
% echo ~x/abc
/home/username/git/github/user/project/abc

您可能需要考虑<代码> SETopt AutoCD和<代码> CDPAT++ =(/home /UrnNe/GIT/GITHUB/USER),它应该允许 Project < /C> >在您的代码>…/GITHUB/USE/<代码>目录中切换到同名的目录。您可能需要考虑<代码> SETopt AutoCD和