【发布时间】:2016-03-24 00:57:17
【问题描述】:
我想做一个简单的 dmenu 命令来读取命令和名称的文件。然后获取名称并使用 dmenu 显示它们,然后获取 dmenu 的输出并再次使用该文件运行相关命令。
我已经到了 dmenu 显示名称的地步,但我真的不知道从那里去哪里。学习 bash 对我来说是一项非常艰巨的任务,我真的不知道从这个看似简单的脚本/命令开始。
这是文件:
Pushbullet
google-chrome-stable --app=https://www.pushbullet.com
Steam
steam
Chrome
google-chrome-stable
Libre Office
libreoffice
Transmission
transmission-qt
Audio Control Panel
sudo pavucontrol & bluberry
这是我目前的命令:
awk 'NR % 2 != 0' /home/rocco/programlist | dmenu | ??(grep -l "stdout" /home/rocco/programlist....)
我的想法是,我可以以某种方式将应用程序的名称输入到 grep 或 awk 中,然后获取行号,然后添加一个并将其输入到 sh 中。
谢谢
【问题讨论】:
-
如果您正在运行 Bash 4,您可以使用 Associative Arrays 将命令的名称存储为键,并将命令本身存储为值。虽然我建议您阅读 Bash FAQ 50 (I'm trying to put a command in a variable, but the complex cases always fail!) 并确定最适合您的方案的方法。