Ram*_*Ram 11 command-line bash
对于我的第一个 bash 脚本,我想创建一些让我非常恼火的东西:当我切换文件夹时,我希望该文件夹的内容自动显示。我尝试将以下代码添加到 ~/.bashrc:
alias go='cd; ls'
Run Code Online (Sandbox Code Playgroud)
我想够简单了!不是这样。虽然键入go /etc确实列出了 /etc 的内容,但我的工作目录实际上并没有改变,我仍然在我以前所在的目录中。我该如何补救?
Tim*_*uck 29
在您的示例中,go /etc将执行cd; ls /etc. 这意味着,首先,cd将当前目录更改为您的主目录。然后,ls /etc将显示/etc.
你可以通过定义一个函数来实现你想要的,像这样:
function go() {
cd "$1" && ls
}
Run Code Online (Sandbox Code Playgroud)
或者只是在命令行中的一行中键入它:
function go() { cd "$1" && ls; }
Run Code Online (Sandbox Code Playgroud)
然后go /etc会做你想做的。
$1在本例中指传递给命令的第一个参数/etc。您可以使用$2,$3等来引用后续参数。