适用于 Unix 的现代 Shell - 类似于 Powershell

Mât*_*man 2 shell ubuntu

我正在为 Ubuntu 寻找现代 shell。

这是第一个限定问题,在构建样式脚本中说(顺便说一句,不是在寻找构建系统):

在 PowerShell 中:

new-item workspaces\crm\builds\demo -ItemType Directory
Run Code Online (Sandbox Code Playgroud)

现在,聪明的一点是,如果前面的目录都不存在,那么只需创建所有目录就足够了,如果在后续运行中仅缺少演示目录,则它会创建该目录。在bash我需要做一个循环结构或手动cd dirnamemkdir subdirnamecd subdirname不想...我想少摩擦。

我想要约定优于配置。有些人可能认为上面的命令做的太多了,但是有了标志,我可以摆脱约定。如果这是有道理的,最短的命令应该做最合乎逻辑的事情,用显式选项表达的附带情况。

建议?

Att*_* O. 16

使用 bash,并设置一些适合您需要的别名,例如

alias md='mkdir -p'
Run Code Online (Sandbox Code Playgroud)

一些例子:

alias ..='cd ..'
alias ...='cd ../..'
alias grep='grep --colour=auto'
alias l='ls -lh'
alias ll='ls -lah'
alias ls='ls --color=auto'
Run Code Online (Sandbox Code Playgroud)

更新:您可能还想查看oh-my-zsh

时隔一年多,感觉有必要更新一下这个答案。我发现oh-my-zsh是最强大、灵活且维护良好的终端工具之一。(虽然实际上它只是插件和不同设置的集合,但它非常强大。)


小智 5

我对 powershell 不熟悉,但在我看来,您只想做以下事情:

mkdir -p /new_dir/subdir1/subdir2/subdir3
Run Code Online (Sandbox Code Playgroud)

这将创建 subdir3 和任何必要的中间目录。