2010-09-19 58 views
3

我可以在UNIX shell中的另一個命令中執行命令嗎?我可以在UNIX shell中執行嵌套或鏈接命令嗎?

如果不可能,我可以使用一個命令的輸出作爲下一個命令的輸入,如:

command x然後command y

command y,我想使用的command x輸出?

+1

@Mohammad:我刪除了svn標籤,因爲這與svn無關,它是一個通用的命令管道問題。 – 2010-09-19 14:48:04

+0

我認爲你需要描述你遇到的更大的問題。你究竟想要完成什麼? – 2010-09-19 15:51:10

+0

1.我想找到所有的存儲庫.... 2.我想找到所有存儲庫的整個目錄.... 注意:執行第一步的結果超過500 repositoy,所以我需要方法來執行第二步的簡單方法,,,, – 2010-09-19 20:10:26

回答

3

究竟是你想做些什麼?從執行的命令中不清楚。也許如果你描述你要找的東西,我們可以指出你正確的方向。如果您想對「find」命令返回的一系列文件(或目錄)名稱執行命令,Colin是正確的,則需要查看「find」的「-exec」選項。如果您希望對文件中列出的或者來自stdin的一系列參數執行命令,則需要查看「xargs」命令。如果你想把單個命令的輸出放到另一個命令的命令行上,那麼使用「$(command)」(或'command'[用反引號代替''))就可以完成這項工作。有很多方法可以做到這一點,但不知道你在做什麼,很難變得更有幫助。

8

您可以使用反引號。

例如這將貓咪file.txt的

貓`回聲file.txt的`

,這將打印日期

呼應的日期是`日期`

反引號之間的代碼將被執行並由其結果取代。

+0

請你可以給我更詳細的例子 – 2010-09-19 14:43:41

+0

但請在下面的情況下是什麼解決方案:我執行「find/-type f -name fs-type -print」這個commad發現所有的存儲庫...現在我需要通過這個命令找到所有版本庫「svnlook tree /var/lib/lib.org.15-01-2008/svn/repos/pstest | egrep」/ $ – 2010-09-19 14:57:43

+0

然後你需要看看'-exec'選項找到 – 2010-09-19 15:21:12

6

你可以做類似的事情;

x=$(grep $(dirname "$path") file) 

這裏dirname "$path"將首先運行,它的結果將被替換,然後grep的運行,搜索的dirname的結果file

+0

但請在以下情況下解決方案:我執行「find/-type f -name fs-鍵入-print「這個commad發現所有的存儲庫...現在我需要通過這個命令找到存儲庫的所有目錄」svnlook tree /var/lib/lib.org.15-01-2008/svn/repos/pstest | egrep「/$ .....我可以如何解決它 – 2010-09-19 14:58:07

+0

@Mohammed:將其添加到您的主要問題 – 2010-09-19 15:17:22

+0

我想找到我所有的存儲庫,然後找到它的e修飾內容 – 2010-09-20 05:52:07

相關問題