我在i3中使用了一个名为ranger的文件管理器。我正在执行的基本任务是为我的日常工作流脚本"选择一个文件夹"。所以我创建了一个通用脚本,并在我所有的脚本中使用它。
下面显示的"我的文件夹选择"脚本保存在名为"文件夹选择"的文件中。 脚本如下所示
#!/usr/bin/env bash
TMP="$(mktemp)"
ranger --show-only-dir --choosedir="$TMP"
cat $TMP
rm -f $TMP
当我将此脚本包含在如下所示的其他脚本中时。
selectedPath="$(folderselect("
脚本挂起且不执行任何内容。请让我知道这可能是什么原因。
Ranger 使用 stdout 显示其接口,$(( 将 stdout 重定向到变量,因此您看不到接口。
您需要将标准输出重定向到 stderr,以显示界面:
ranger --show-only-dirs --choosedir="$TMP" 1>&2