2016-02-13 77 views
1

我在Ubuntu 14.04上。可以說有幾個可執行文件。如何在Linux中使用模式執行多個可執行文件

ATest, BTest, CTest, random1, random2 

我想執行以「測試」結束一切,但我不知道可執行事前究竟有多少符合這個標準

./*Test 

只結束了執行ATEST

但像

ls *Test 

作品完美地只顯示以T結尾的文件美東時間。

什麼是正確的shell命令用一個模式執行多個可執行文件而不知道有多少文件匹配這個模式?

+0

聽起來你想開始使用測試工具。這裏有幾個解決方案(他們也幫助報告結果)。 – Thilo

+0

如果可執行文件名不包含空格,如'ls * Test | xargs -n1 -I {} ./ {}'。如果它們包含白色步伐,則可以使用'find'作爲'find。 -name \ * Test -print0 | xargs -0 -n1 -I {} {}'。他們將一個接一個地執行。如果您希望一次全部執行它們,請在後臺運行它們。 – alvits

回答

3

您可以使用一個簡短的腳本來實現:

#!/bin/bash 
for f in *Test 
do 
"./$f" 
done 

或者,甚至一個班輪:

for f in *Test; do "./$f"; done 
+0

作品廣告! – user3667089

+0

@PSkocik好建議...我更新了我的答案 –

3
find . -name \*Test -exec ./{} \; 

編輯:這也將搜索所有子目錄。只搜索當前目錄:

find . -maxdepth 1 -name \*Test -exec ./{} \; 
+0

這給了我一個「發現:路徑必須先於表達式:ATest」錯誤 – user3667089

+1

我相信如果你把雙引號*測試這將工作 –

+0

嗯,我測試了bash ,它適用於我。你在使用哪種外殼? –

相關問題