使用dmenu定义变量



我正在尝试编写一个简单的脚本来剪切音频文件的一段,将其设置为图像并渲染为视频。我想使用dmenu作为一种干净的方式来显示输入变量的提示。所有操作都很好,只是dmenu似乎希望通过管道输入一些内容,否则脚本就无法运行。

以下是我如何获得当前正在运行的代码的相关部分

INPUT=$(ls | dmenu -i -p "Input file:")
START=$(echo " " | dmenu -i -p "Start time:")
DURATION=$(echo " " | dmenu -i -p "Duration:")
IMAGE=$(ls | dmenu -i -p "Image file:")

我想删除$START和$DURATION的echo命令,因为它很难看(它在dmenu中留下了一个不需要的彩色框(,也因为它看起来是多余的。但是,如果没有它,脚本在这些行上就会失败。

dmenu总是希望有什么东西通过管道进入吗?也许我做了其他完全错误的事情,这只是我的第三个shell脚本。

要去掉彩色空间,可以这样做:

DURATION=$(:| dmenu -i -p "Duration:")

DURATION=$(dmenu -i -p "Duration:"< <(:))

CCD_ 1表示CCD_。所以这和写作是一样的:

DURATION=$(true| dmenu -i -p "Duration:")
DURATION=$(dmenu -i -p "Duration:"< <(true))

但是,您也可以使用-n标志在以下位置回显相同的结果:

DURATION=$(echo -n ''|dmenu -i -p "Duration:")
DURATION=$(dmenu -i -p "Duration:"< <(echo -n ''))

来自手册页:

。。。它从stdin 中读取换行分隔项目的列表

所以是的,dmenu需要一些东西通过管道传输到它。

相关内容

  • 没有找到相关文章

最新更新