alguém pode me sugerir como escrever um script sobre o problema abaixo? [fechadas]

0

Alguém pode sugerir como eu posso usar este passo no script (que eu preciso pegar a saída do primeiro comando eu preciso usar o segundo comando para todos os três)?

[aaa@build]$ find . -name src
./Port/bit/WE-IN/src
./MI/M-Scripts/Msg/src
./MI/M-Scripts/TT/src
[aaa@build]$ cd ./Port/bit/WE-IN/src
    
por niroo 03.12.2015 / 06:19

2 respostas

1

O comando que você está procurando é xargs . Normalmente você usaria assim:

find . -name src -print0 | xargs -I{} -0 echo {}

ou para sua pergunta explícita:

find . -name src -print0 | xargs -I{} -0 cd {}
    
por 03.12.2015 / 06:42
0

O que você pode fazer é declarar a função shell e passar cada resultado de find para um loop while, que chamará essa função por diretório.

#!/bin/bash
function f 
{

  echo "THIS IS " $(pwd)
  ls
}

find . -maxdepth 1 -type d -name "bin" -printf "%P\n" | while read DIRNAME;
do

  cd $DIRNAME
  f
done

Aqui está uma amostra de execução:

$ ./findAndFunction.sh                                                                               
THIS IS  /home/xieerqi/bin
autostart-script.sh  c  java  perl  python  README.md  sergrep  shell
    
por 03.12.2015 / 08:13