Как отправить несколько команд в качестве входных данных в программе?

Нет необходимости в найти . Просто используйте оболочку:

for d in */; do [ -f "$d"README ] || printf '%s\n' "$d"; done
c/

Если вам нужно, чтобы она была рекурсивной, вы можете использовать (для bash , zsh может сделать это по умолчанию, используйте set -o globstar в ksh93 ):

shopt -s globstar
for d in **/; do [ -f "$d"README ] || printf '%s\n' "$d"; done

(обратите внимание, что точечные файлы по умолчанию исключены).

4
01.03.2018, 12:30
3 ответа

Utilice {y }para recopilar la salida de varios programas. Por ejemplo, { echo one; echo two; } |program. Deje un espacio después de {y antes de }y asegúrese de que haya un punto y coma después del último comando entre llaves.

9
27.01.2020, 20:45

Yo sugeriría un aquí documento

./my_proc << END_OF_INPUTS
username
phone number
whatever
END_OF_INPUTS
12
27.01.2020, 20:45

También puedes usar printf y una tubería

printf "%s\n" "username" "number phone" "whatever" |./my_prog
2
27.01.2020, 20:45

Теги

Похожие вопросы