可执行文件作为通用术语:
- 常见的二进制文件
- 脚本
我想它可以用一些胖正则表达式来完成,匹配新行的开头,像&&
and之类的连词||
,内联之后;
等等......但我想知道是否有更简单的方法?
答案1
您可能会很高兴只需整理“单词”,然后通过“which”命令传递它们。也许像下面这样:
cat $SCRIPT | tr -c '[[:alnum:]-_]' '\\n' | sort -u | xargs which
短语中的单词排序规则tr
排除了诸如此类的更“深奥”的命令[
。这就是您可能需要进行试验的地方,除非您只是在寻找“普通”命令词。当然,上面的内容还找到了脚本中可能未使用的命令字,为了进行这种区分,您确实需要更多的解析器。您可能还需要一个首字母缩写,sed 's/#.*//
而不是cat
排除脚本中的注释(尽管这无法传递#
字符串中包含的位置)。