在 shell 中执行命令并关闭控制台中命令的默认显示

在 shell 中执行命令并关闭控制台中命令的默认显示

这是我的脚本

cd /opt/product/vinoth
-- some operations --
cd -

执行此命令时,cd -旧路径将显示在控制台中。

有什么方法可以阻止它在控制台中显示。

通过在命令前面使用 @ 可以避免在 make 文件中出现同样的情况。

通过冲浪,我了解到这可以通过使用来实现cmd=$(cd -)

该命令未执行且路径未更改。

答案1

改用OLDPWD

/ $ cd /tmp
/tmp $ echo $OLDPWD
/
/tmp $ cd "$OLDPWD"
/ $

man bash

   OLDPWD The previous working directory as set by the cd command.
...
cd 
   An argument of - is converted to $OLDPWD before the directory 
   change is attempted.

$(cd -)在子 shell 中运行,因此不会影响当前 shell。

您还可以这样做:

cd - >/dev/null

答案2

正如中所解释的答案,一个简短的变体,当 cd 到上一个工作目录时使用波形符扩展时不显示目录~-

cd ~-

相关内容