如何在 zenity 中使用更改目录?

如何在 zenity 中使用更改目录?

如何使用 cd 命令在 zenity 中更改目录,我的简单脚本如下

#!/bin/bash    
a=`zenity --entry --entry-text="input directory name"`
cd $a

但是,当 cd [cd(ChangeDirectory)命令将从当前目录更改为您指定的任何目录] 命令更改为 rmdir/mkdir 时,它的工作很完美。

请帮我..

答案1

可以cd正常工作,但它只会影响脚本的进程,而不会影响运行脚本的 shell。过去曾使用过几种方法来解决此问题,但目前最好的方法可能是使用 shell 函数而不是单独的脚本,因为 shell 函数将在您的原始 shell 中运行,而不是在单独的进程中运行。

这将在您的~/.profile

cdprompt()
{
    cd $(zenity --entry --entry-text="input directory name")
}

如果您随后启动一个新 shell 并运行cdprompt,它应该会显示 zenity 提示符并按预期更改到您输入的目录。

如果您确实希望命令位于单独的文件中,则另一个选择是使用source该文件而不是运行它:

source newdir.sh

或者

. newdir.sh

这告诉bash您在当前进程中运行文件中的命令,而不是启动新进程。它通常用于加载配置而不是运行程序,但它也适用于此。

相关内容