1
私はteamcityのためのbashスクリプトを持っています。プレースホルダを使ってビルド変数の値をファイルに置きます。英数字以外の記号のbash自動エスケープ
sed -i ""
-e "s/BUNDLE_VERSION/%bundle_version%/"
-e "s/BUNDLE_ID/%bundle_id%/"
-e "s/APP_TITLE/%title%/" "%system.teamcity.build.tempDir%/info.plist"
%var% - チームシップごとにbashスクリプトを実行する前にvarの値に置き換えられました。
'
,"
,/
などの他の英数字以外の記号を持つ変数では機能しません。 1:: "" S/APP_TITLE /オート... ":無効なコマンドコード"
スクリプトを修正するためにどのようにそれが
[12時22分07秒] sedのクラッシュ
title = Auto Shop "SuperCar"
で例えば 英数字以外の記号を使用するには?BUNDLE_VERSION=$(echo "$BUNDLE_VERSION" | sed -r 's/\\/\\\\/g;s/\//\\\//g;s/\^/\\^/g;s/\[/\\[/g;s/'\''/'\'"\\\\"\'\''/g;s/\]/\\]/g;s/\*/\\*/g;s/\$/\\$/g;s/\./\\./g')
例:
sedは使用しないでください。 awkやperlを使って変数を渡してください。 – 123