2016-10-25 151 views
0

我需要關於我的程序的建議。在bash中,我需要在帶有索引的目錄中顯示可執行文件,然後通過索引運行這些文件。有可能的?顯示可執行文件並運行

感謝您的答覆

+0

所以要篩選的指標和運行特定指數或只運行在目錄中的所有可執行文件? – ritesht93

回答

0

要列出目錄中的所有可執行文件,你可以嘗試:

ls -l | awk '$1~"-rwxr-xr-x"{ print $9 }' 

此命令將打印的文件名與-rwxr-xr-x。您可以重新排列它以滿足您的需求。

當你的可執行文件所需的列表,運行它們:

for i in $(ls -l | awk '$1~"-rwxr-xr-x"{ print $9 }'); do ./$i; done  
+0

解析'ls'輸出是脆弱的。在這種情況下,文件必須是可執行的,適用於所有者,組和世界---這可能是也可能不是正確的。爲什麼不用'find -executable'來代替?或者循環中的'[-x $ file]'?其他人也可能會抱怨使用反引號而不是'$(...)'。 – Robert

+0

我感謝您的評論,我編輯了我的答案! – andreatsh

1

find命令似乎有點複雜,但非常有用:

發現。 -maxdepth 1 -type f -perm -a = rx -exec echo Exec {} \;

  • -maxdepth 1:下降最多1級
  • 型F:只有普通文件(不是目錄)
  • -perm -a = RX:讀和可執行的所有者
  • - exec Exec {} \; :爲每個找到的文件做echo Exec文件;

測試:

find . -maxdepth 1 -type f -perm -a=rx -exec echo Exec {} \; 
Exec ./kl.sh 
相關問題