我自己做了很多搜索和測試,但似乎無法找到實現此目標的最佳方法。我想有一個bash腳本,可以在機器上找到一個腳本,執行腳本並能夠在我的情況下添加交換機或所需信息,以便成功執行腳本。Bash - 查找腳本並執行選項
爲了得到更具體一點,我在卡利Linux和我運行定位命令,像這樣:
定位pattern_create
返回:
的/ usr /share/metasploit-framework/tools/pattern_create.rb
所以我想把它編成xargs來運行這樣的腳本:
locate pattern_create | xargs的紅寶石
但當然我不能指定我需要將成功運行該腳本的選項,這將是:
紅寶石在/ usr /共享/ Metasploit的框架/工具/ pattern_create .rb 2700
我想出了一個解決方法,但我覺得它有點草率,這可以做得更容易,這就是我希望我能得到任何輸入/反饋的地方。
我發現我可以運行:
pattern_create = $(定位pattern_create)& &紅寶石$ pattern_create 2700
得到正是我需要的,但後來我處理環境當我經常這樣做時,我不想要一堆變量。如果可能的話,我希望能夠用xargs或者甚至更乾淨的方法來解決這個問題。我知道這可以使用find -exec輕鬆完成,但在我沒有存儲腳本的情況下,這不起作用。
任何幫助都會很棒,我很欣賞每個人的時間。謝謝。
這是完美的!我明白髮出這個命令時的警惕。我的想法是驗證腳本在那裏,我發現它'找到',然後'↑'回到'找到'。接下來,用你的建議重寫命令並添加所需的參數。最終,我是這樣管道入xclip:'ruby $(locate pattern_create)2700 | xclip -selection c' –
Matthew
@Matthew您的方法很好,IMO。如果你只是不想在你的環境中有變量,你可以* unset * it:'var = $(locate pattern_create)&& ruby $ var 2700;未設置var'。另外,請注意'locate'使用一個可能沒有最新信息的數據庫。它甚至可能無法找到您的系統上實際存在的文件。 'find'命令是一個更好的選擇。 –
當你不確定確切的路徑時,是否有更好的方法來使用find?我不確定是否有這種能力。 – Matthew