Puis-je exécuter la commande dans une autre commande dans les coquilles UNIX? P>
Si impossible, puis-je utiliser la sortie de la commande précédente comme entrée de la commande suivante, comme dans: p>
où dans commande x code> puis
commande y code>, p>
commande y code> je veux utiliser la sortie de la commande
x code>? p>
4 Réponses :
Vous pouvez utiliser les backuotes pour cela. P>
Par exemple, cela va chat le fichier.txt p>
chat et tombe; écho fichier.txt & grave; p> blockQuote>
Et cela imprimera la date p>
écho la date est & grave; date et tombe; p> blockQuote>
Le code entre les devis arrière sera exécuté et être remplacé par son résultat. P>
S'il vous plaît, vous pouvez me donner l'exemple plus en détail
Mais s'il vous plaît, dans le cas suivant, quelle est la solution: j'exécute "TROUVERTYPE F -NAME FS-TYPINT" Cette commande a trouvé tout le référentiel ... maintenant je dois trouver tous les répertoires du référentiel de cette commande "Svnlook Tree /var/lib/Lib.org.15-01-2008/svn/repos/psest | Egrep "/ $
Ensuite, vous devez regarder l'option -exec code> de trouver
Est-il possible de nier des backuotes? J'essaie d'utiliser le résultat de cette expression dans une commande: realpath --Relative-to = pwd code>
git top pwd code> (où git haut est un alias qui exécute à Le sommet du référentiel. L'idée est de mettre cela dans une commande de recherche, qui me donnera des chemins relatifs aux résultats, pour une utilisation dans une liaison SelectA Fuzzy Selection Vim.
Googlefoo a évidemment échoué: Ici, c'est LinuxMisc.com/12-unix-shell/12-unix-shell/12 d9c594a376ffed37.htm - $ foo = `echo \ \` \ `écho hello \` `- c'est-à-dire échapper aux internes
Vous pouvez faire quelque chose comme; ici dirname "$ chemin" code> sera exécuté en premier et son résultat sera substitué, puis le grep fonctionnera, à la recherche de Le résultat de
dirname code> dans le fichier
code> p> p>
Mais s'il vous plaît, dans le cas suivant, quelle est la solution: j'exécute "TROUVERTYPE F -NAME FS-TYPINT" Cette commande a trouvé tout le référentiel ... maintenant je dois trouver tous les répertoires du référentiel de cette commande "Svnlook Tree /var/lib/lib.org.15-01-2008/svn/repos/psest | Egrep "/ $ ..... Comment puis-je le résoudre
@MoHammed: ajoutez-le à votre question principale.
Je veux trouver tout mon référentiel, puis trouver tout son contenu
Qu'est-ce que vous essayez exactement de faire? Il n'est pas clair des commandes que vous exécutez. Peut-être que si vous décrivez ce que vous recherchez, nous pouvons vous indiquer dans la bonne direction. Si vous souhaitez exécuter une commande sur une gamme de noms de fichier (ou de répertoire) renvoyés par la commande "Rechercher", Colin est correct, vous devez consulter l'option "-exec" de "trouver". Si vous souhaitez exécuter une commande sur un groupe d'arguments énumérés dans un fichier ou en provenance de STDIN, vous devez consulter les commandes «Xargs». Si vous souhaitez mettre la sortie d'une seule commande sur la ligne de commande d'une autre commande, alors à l'aide de "$ (commande)" (ou "commande" [remplacez le 'avec un backquote]) fera le travail. Il y a beaucoup de façons de faire cela, mais sans savoir ce que vous essayez, il est difficile d'être plus utile. P>
Voici un exemple où j'ai utilisé des commandes système imbriquées. J'avais dirigé "LS -LTR" au-dessus de la commande de recherche. Et il exécute en série sur la sortie de la recherche. P>
LS -LTR $ (Trouvez. -Name "srvm.jar") p>
Êtes-vous au courant du -Ls code> à la fin d'un
trouver code>? Comme ici:
trouver. -Name "srvm.jar" -ls code>.
@MOHAMMAMMAD: J'ai supprimé la balise SVN puisque cela n'a rien à voir avec SVN, c'est une question de tuyauterie de commandement général.
Je pense que vous devez décrire le plus grand problème que vous rencontrez. Qu'est-ce que exactement i> essayez-vous d'accomplir?
1. Je veux trouver tout le référentiel .... 2. Je veux trouver tout le répertoire pour tous ... Remarque: Remarque: Résultat de l'exécution d'une étape de plus de 500 repositoy, donc j'ai besoin de méthode pour exécuter l'étape deux par méthode facile , ,
J'exécute la commande suivante: -Find / -Type F -Name FS-type -exec svnlook arbre {} \; | Egrep "/ $" ... Le résultat est SVNLook: impossible d'ouvrir le fichier '/ var / lib / svn / repos / b1me / produits / payone / générique / code / noyau / d b / fs-type / format ': Pas un répertoire svnlook: impossible d'ouvrir le fichier' / var / lib / svn / repos / b1me / produits / payone / générique / code / frais / d b / fs-type / format ': pas un répertoire .. ... Peut-être que nous devons faire la commande de la commande, donnez-nous un chemin sans "db / fs-type / format" mais comment je peux faire cela ???