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
等来引用后续参数。