Использование очень упрощенного сценария expect
:
spawn umake ide eclipse
expect "Choose installation path:" { sleep 1; send "\r" }
Запуск:
$ expect -f script.expect
Если вас не волнует, какая строка #! / Bin / sh
встречается в файле, то вы можете попробовать:
find -type f -exec bash -c 'grep - r "^ #!. * \ / bin \ / sh" $ 1 1> / dev / null && echo $ 1 '_ {} \;
for f in ./*; do
[ -f "$f" ] && [ -x "$f" ] &&
file -b "$f" | grep -wq text &&
head -n 1 "$f" | grep -qP '^#!\s*/bin/sh' &&
printf '%s\n' "$f"
done
Я объединил несколько ответов в свою версию:
find -type f -exec \
sh -c 'head -n1 "$1" | grep -q "^#![[:blank:]]*/bin/sh"' _ {} \; \
-print
find -type f -exec
для получения всех файлов и выполнения над ними команды.head -n1
для получения только первой строки и использует grep -q
для получения только RC. [[:blank:]]*
для обработки пробелов и табуляции. echo
from нейрона и вместо этого используйте директиву find -print
.