.png)
Android SDK をインストールしており、バイナリをbuild-tools/android-VERSION
PATH で利用できるようにしたいので、次の行を追加します。
ANDROID_SDK=/Application/Binaries/adt-bundle-linux-x86_64-20140321/sdk/
ANDROID_PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$ANDROID_SDK/build-tools/android-4.4.2/
問題は、SDKをいつでも更新する可能性があるため、それに応じて変更する可能性があることです。その場合は、ファイルを再度編集して$PATHの部分build-tools/android-4.4.2/
を更新する必要があります。android-version
そこで私はプロフィールを次のように変更しました。
ANDROID_SDK=/Application/Binaries/adt-bundle-linux-x86_64-20140321/sdk/
ANDROID_PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
for x in $ANDROID_SDK/build-tools/android-*/; do
export PATH=$PATH:$x
done
それは馬鹿げているようですが、もっと良い書き方はありますか?
答え1
理想的な方法は、 というソフト リンク ディレクトリを作成しadt
、SDK の変更後にそれを再作成することです。
したがって、あなたのPATH
意志は変わりません。
答え2
このアプローチでは、 の出力が 2 回にわたってls
、時間順に、ディレクトリのみ ( -td
) ソートされて、コマンドにパイプされ、コマンドによって最初の行が選択されます。その結果、と のhead
両方の最新バージョンが、PATH 環境変数の変更に使用されることになります。adt-bundle-linux-x86_64-*/sdk
build-tools/android-*/
ANDROID_SDK=$( ls -td /Application/Binaries/adt-bundle-linux-x86_64-*/sdk/ | head -n 1 )
if ! [ -z $ANDROID_SDK ] ; then
ANDROID_PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
ANDROID_BUILDTOOLS=$( ls -td $ANDROID_SDK/build-tools/android-*/ | head -n 1 )
if ! [ -z $ANDROID_BUILDTOOLS ] ; then
echo "Adding $ANDROID_BUILDTOOLS to PATH"
export PATH=$PATH:$ANDROID_BUILDTOOLS
else
echo "Couldn't find build tools"
fi
else
echo "Couldn't find SDK"
fi
答え3
PATH="$PATH:$(printf '%s:' $ANDROID_SDK/build-tools/android-[0-9.]*/)"
動作するはずです。
cd ~ ; mkdir dir1 dir2 dir3
( PATH=$(printf %s: $HOME/dir[12])
echo "$PATH" )
/home/mikeserv/dir1:/home/mikeserv/dir2:
Another method:
PATH="$PATH:$( set -- `printf '%s\n' "$ANDROID_SDK"*/android[0-9.]*/ |
sort -rV` ; [ -d "$1" ] && echo "$1" )"
それはsort's -Version
位置パラメータを確実に処理する"$1"
常に Android SDK の最新バージョンに設定されます。例:
ソートなし:
% printf %s\\n ~/dir[0-9]*
/home/mikeserv/dir1
/home/mikeserv/dir2
/home/mikeserv/dir23
/home/mikeserv/dir3
/home/mikeserv/dir45
それと:
% printf %s\\n ~/dir[0-9]* | sort -V
/home/mikeserv/dir1
/home/mikeserv/dir2
/home/mikeserv/dir3
/home/mikeserv/dir23
/home/mikeserv/dir45
そして逆転:
% printf %s\\n ~/dir[0-9]* | sort -rV
/home/mikeserv/dir45
/home/mikeserv/dir23
/home/mikeserv/dir3
/home/mikeserv/dir2
/home/mikeserv/dir1