我正在使用optirun
来自bumblebee
.它旨在启动我的第二个 GPU,运行给定的命令,最后关闭第二个 GPU。
一个简化的例子:
optirun echo test | cat
然而,有一个错误optirun
要求我现在运行后续命令来强制 GPU 关闭。
我可以轻松地包装一些复杂的命令(例如echo test | cat
在 shell 脚本中),以便我可以运行 optirun,然后在最后使用命令(我的 bug 解决方法)进行跟踪吗?
引用和所有内容似乎是一个问题,阻止我使用简单的 shell 脚本来完成此操作。
答案1
我相信您只是在$@
脚本的参数列表之后。
简单的例子:
$ cat >cc.sh <<EOF
#!/bin/sh
head "\$@"
echo I AM DONE
EOF
$ chmod 755 cc.sh
使用参数:
$ ./cc.sh cc.sh
#!/bin/sh
head "$@"
echo I AM DONE
I AM DONE
适用于 STDIN/STDOUT
$ cat cc.sh | ./cc.sh | tail -n 2
echo I AM DONE
I AM DONE
适用于混合物:
$ cat cc.sh | ./cc.sh -n 2 | tail -n 2
head "$@"
I AM DONE
所以:
#!/bin/sh
optirun "$@"
rmmod <mod> [perhaps >/dev/null 2>&1 if you need to ignore errors from rmmod]
答案2
如果在您的示例中,optirun echo test | cat
您只想echo test
将 赋予 optirun,这就是您在命令行键入示例时发生的情况,然后
#!/bin/sh
optirun "$@"
rmmod workaround
是你所需要的全部。放入一个名为“myopti”的脚本,您就可以使用myopti echo hello | cat
并进行清理。