「adbシェル」が/etc/profileまたは他の設定ファイルを読み取るようにする方法は?

「adbシェル」が/etc/profileまたは他の設定ファイルを読み取るようにする方法は?

ashfrombusyboxを使用する組み込みLinuxシステム(kernel-5.10.24)を開発しています/bin/sh。システムはadb shellシリアルコンソールとPCからのログインをサポートします。

shellこれで、シリアルコンソールから起動すると定義された環境が読み取られますが、シリアル/etc/profileコンソールshellから起動すると読み込まadb shellれません。

例えば、/etc/profile以下のように

# cat /etc/profile
export PATH="/bin:/sbin:/usr/bin:/usr/sbin"

if [ "$PS1" ]; then
        if [ "`id -u`" -eq 0 ]; then
                export PS1='# '
        else
                export PS1='$ '
        fi
fi

シリアルコンソールでは

# echo $HOME
/root
# echo $ENV

# echo $PATH
/bin:/sbin:/usr/bin:/usr/sbin

しかし今adb shell

/sys/kernel/config/usb_gadget # echo $PATH
/sbin:/usr/sbin:/bin:/usr/bin
/sys/kernel/config/usb_gadget # echo $HOME
/

起動されたシェルはターゲットLinuxで起動されadb shellます。それでは、シェルを起動してその環境の他の設定ファイルを読み取るadbd方法はありますか?adb shell/etc/profile

ベストアンサー1

あなたが望むことを達成するためにラッパースクリプトを試してみてください。

adb shell 'ENV=/etc/profile sh -i'

単純なエイリアスは次のとおりです。

alias adbshellenv="adb shell 'ENV=/etc/profile sh -i'"

おすすめ記事