首頁>Computer>source

我對將命令鏈接到bash外壳中的一个特定二进製檔案有一个一般性的問题,並附有Magento的示例(用例)

在Magento中,您通常希望將许多命令鏈接在一起-它们需要很长時間,因此要批量執行,您可以這樣做: bin/magento setup:upgrade && bin/magento setup:di:compile && bin/magento cache:flush

最初,我將這些命令鏈添加到 ~/.bash_aliases ,但要获得一致的命令組並不是我想的那麼容易。

我已经將二进製檔案添加到我的PATH中,但是我想知道是否可以鏈接命令,以便它看起来像這樣: mag_chain setup:upgrade setup:di:compile cache:flush

這可能吗?

如果没有bash的解決方案,可以使我朝正確的方向前进?

最新回復
  • 5月前
    1 #

    bash没有內建的方法来執行此操作,但是您可以編寫指令碼而不会遇到太多麻煩 .最棘手的是要弄清楚一个命令在哪裏結束,下一个命令在哪裏開始.我不懂磁力,所以這是一个令人难以置信的例子,但是假設您要執行

    mag_chain help setup:upgrade
    

    ...應该這樣做 或只是 magento help && magento setup:upgrade ? 一種可能是使用引號將每个單独的命令作為單个引數傳遞:

    magento help setup:upgrade
    

    拆分單个命令的引數有點混亂. bash通過使用不帶双引號的引數来實現此目的的內建方法,但是在某些情况下存在怪異的問题; mag_chain help setup:upgrade # -> magento help && magento setup:upgrade mag_chain "help setup:upgrade" # -> magento help setup:upgrade 所做的拆分單詞的工作要合理得多,所以使用它。

    還有其他需要担心的事情:確保檢查每个步骤是否有錯誤,如果有錯誤,請取消其餘部分.另外,我不確定實際使用的是什麼 命令本身應该是.您使用了 xargs ,但前提是 magneto 檔案可以直接執行(即,您不需要 bin/magneto ),位於当前工作目錄正下方的" bin"目錄中.因此,我將magneto命令放在一个陣列中,這樣很容易更改。

    magneto
    
    php bin/magneto

  • 有什麼技巧可以使剪貼簿歷史記錄在windows重新啟動後不会消失吗?
  • networking:如何將電话+網路調製解調器設置為1台設備?