Ste*_*nov 5 command-line bash alias bashrc
我想在 Ubuntu 中通过简单的命令在当前位置打开新的终端窗口
gnome-terminal --working-directory=`pwd` & disown
Run Code Online (Sandbox Code Playgroud)
工作对我来说很好。但是当我给 bashrc 加上别名时
alias clone="gnome-terminal --working-directory=`pwd` & disown "
Run Code Online (Sandbox Code Playgroud)
pwd开始计算。所以我得到了类似的东西。
$ type clone
clone is aliased to `gnome-terminal --working-directory=/home/user & disown '
Run Code Online (Sandbox Code Playgroud)
是否可以pwd仅在我调用别名时进行计算。或者我需要编写除别名之外的 bash 函数?
hee*_*ayl 10
只需在alias声明命令周围使用单引号,以便在声明时pwd不会发生命令替换 ( )(并且仅在调用别名时才会扩展):
alias clone='gnome-terminal --working-directory=`pwd` & disown'
Run Code Online (Sandbox Code Playgroud)
也开始使用命令替换语法$()而不是旧的和有问题的``:
alias clone='gnome-terminal --working-directory="$(pwd)" & disown'
Run Code Online (Sandbox Code Playgroud)
另请注意,gnome-terminal它的设计方式是,无论何时
gnome-terminal
Run Code Online (Sandbox Code Playgroud)
它将打开一个与原始窗口具有相同 PID 的新窗口。这是因为它的设计过程相同,退出一个不会杀死另一个。所以你不需要disown和背景 ( &),只需要:
alias clone='gnome-terminal --working-directory="$(pwd)"'
Run Code Online (Sandbox Code Playgroud)
会做。
此外,正如@Digital Trauma 所指出的,gnome-terminal始终从当前工作目录开始,因此--working-directory不需要,因为您将其设置为pwd. 所以你可以这样做:
alias clone='gnome-terminal'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
676 次 |
| 最近记录: |