我有一个字符串,其中包含脚本中第一行的内容,例如
#!/bin/bash
但它可以是任何东西,例如
#!/path/to/another/interpret -some args -another arg
如何通过省略路径和参数来提取解释器的名称 - “bash”、“interpret”?
我想找到第一个空格来将参数与路径分开。
你能帮忙吗?
最佳答案
我认为你不能在 shebang 中使用空格。如果找不到,您可以像这样找到解释器名称:
interpreter=`cat test.sh | head -n 1 | cut -d' ' -f 1`
basename $interpreter
编辑: 缩短版本:
interpreter=$(basename $(sed '2q;s/^#!//;s/ .*//' test.sh))
关于bash:查找解释器的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9859244/