如何忽略按下的按键

如何忽略按下的按键

我有一个 bash 脚本,需要在其中指定键和参数。我使用别名为其创建了一个命令。

alias command="pushd /path; ./somescript.sh; popd"

脚本完成工作后,我需要返回到调用脚本的目录。

但我收到一个错误:

bash: popd: -o: invalid number
popd: using: popd [-n] [+N | -N]

我的系统的语言不是英语,如果在原版中看起来有所不同,我很抱歉。我应该做什么?

答案1

这工作正常:

$ alias foo="pushd /; ls -ld ./tmp; popd"
$ foo
/ ~
drwxrwxrwt 12 root root 4096 Dec 25 19:30 ./tmp/
~

但如果您需要将参数传递给别名的中间命令,则需要使用函数。否则,参数只是添加到别名的末尾,因此它们作为 的参数popd

改为这样做:

something() {
    pushd /path > /dev/null
    ./somescript.sh "$@"
    popd > /dev/null
}
something -o blahblah

用作command别名/函数的名称可能不是最好的调用,它是一个 shell 内置函数,用于调用外部命令,跳过具有相同名称的函数。

相关内容