我正在寻找没有任何种类的–version选项的应用程序的版本号。
我正在寻找一个bash脚本,将开始这个过程(它运行,直到死亡),grep它的版本号,然后杀死它。
就像是:
./server | grep version | kill $PID
那可能吗?
./server | grep version | head -n 1 && kill $PID
find1个结果后,头会停止pipe道。
如果你想捕捉variables,你应该能够做到:
version=`./server | grep version | head -n 1` && kill $PID echo $version
编辑:“string”的build议是一个更好的path,如果可行的话。
版本string是否遵循任何合理的格式? 您可以尝试对二进制文件运行strings ,并查看是否可以构build模式以匹配版本string。
否则这在bash中会变得有些黑。 我可能会做这样的事情:
./server | grep version &>/tmp/out.$$ & sleep 10 # <-- however long it takes for version to come out. kill %1
编辑: Tarrant的答案比我的好多了。
你真的需要这样运行和杀死它,或者你可以通过在二进制文件上运行string来find版本?
除此以外:
./server | grep user | kill `pgrep -P $$ server`
…应该做的伎俩。