我在Ubuntu 14.04上。可以說有幾個可執行文件。如何在Linux中使用模式執行多個可執行文件
ATest, BTest, CTest, random1, random2
我想執行以「測試」結束一切,但我不知道可執行事前究竟有多少符合這個標準
./*Test
只結束了執行ATEST
但像
ls *Test
作品完美地只顯示以T結尾的文件美東時間。
什麼是正確的shell命令用一個模式執行多個可執行文件而不知道有多少文件匹配這個模式?
我在Ubuntu 14.04上。可以說有幾個可執行文件。如何在Linux中使用模式執行多個可執行文件
ATest, BTest, CTest, random1, random2
我想執行以「測試」結束一切,但我不知道可執行事前究竟有多少符合這個標準
./*Test
只結束了執行ATEST
但像
ls *Test
作品完美地只顯示以T結尾的文件美東時間。
什麼是正確的shell命令用一個模式執行多個可執行文件而不知道有多少文件匹配這個模式?
您可以使用一個簡短的腳本來實現:
#!/bin/bash
for f in *Test
do
"./$f"
done
或者,甚至一個班輪:
for f in *Test; do "./$f"; done
作品廣告! – user3667089
@PSkocik好建議...我更新了我的答案 –
find . -name \*Test -exec ./{} \;
編輯:這也將搜索所有子目錄。只搜索當前目錄:
find . -maxdepth 1 -name \*Test -exec ./{} \;
這給了我一個「發現:路徑必須先於表達式:ATest」錯誤 – user3667089
我相信如果你把雙引號*測試這將工作 –
嗯,我測試了bash ,它適用於我。你在使用哪種外殼? –
聽起來你想開始使用測試工具。這裏有幾個解決方案(他們也幫助報告結果)。 – Thilo
如果可執行文件名不包含空格,如'ls * Test | xargs -n1 -I {} ./ {}'。如果它們包含白色步伐,則可以使用'find'作爲'find。 -name \ * Test -print0 | xargs -0 -n1 -I {} {}'。他們將一個接一個地執行。如果您希望一次全部執行它們,請在後臺運行它們。 – alvits