Symlink

連結到執行檔並刪除一些參數

  • October 23, 2015

我目前正在使用 Xamarin Studio,它在這個版本中有一個錯誤。它將 2 個參數添加到執行檔中,這會導致輸出中充斥著錯誤消息,從而將建構時間從一分鐘減慢到至少 10 分鐘。

有沒有辦法可以移動原始執行檔並創建一個 bash 腳本或連結,刪除 2 個有問題的參數,並將其放在它的位置?

因此 Xamarin 會像往常一樣執行該命令,但不會將 2 個有問題的參數傳遞給原始命令。

說它/usr/bin/ibtool --errors --warnings --notices --output-format xml1 --minimum-deployment-target 7.0 --target-device iphone --target-device ipad --auto-activate-custom-fonts --sdk iPhoneSimulator9.0.sdk --compilation-directory Main.storyboard,我想:

  1. 移至ibtool_ibtool_orig
  2. 放置一個連結或腳本代替ibtool,它會刪除有問題的參數並將其傳遞給ibtool_orig ,給我以下命令:

/usr/bin/ibtool_orig --errors --output-format xml1 --minimum-deployment-target 7.0 --target-device iphone --target-device ipad --auto-activate-custom-fonts --sdk iPhoneSimulator9.0.sdk --compilation-directory Main.storyboard(注意ibtool現在已經消失ibtool_orig--errors --warnings

有任何想法嗎?

規範的方式是一個形狀像這樣的循環:

#! /bin/sh -
for i do # loop over the positional parameters
 case $i in
   --notices|--warnings) ;;
   *) set -- "$@" "$i" # append to the end of the positional parameter
                       # list if neither --notices nor --warnings
 esac
 shift # remove from the head of the positional parameter list
done
exec "${0}_orig" "$@"

您還可以替換#! /bin/sh -ksh、或路徑,並替換zsh為so被傳遞為(它可能在其錯誤消息中使用或重新執行自身)。yash``bash``exec``exec -a "$0"``ibtool_orig``/path/to/ibtool``argv[0]

引用自:https://unix.stackexchange.com/questions/237905