LinuxスクリプトとAndroidスクリプトの違いを調べたいと思います。しかし、構文に特別な違いはありません。たとえば、Androidスクリプトはできますが、Linuxスクリプトではできないタスク、実行、パフォーマンスなどがあります。
探すべき具体的な事項をいくつか提案してもらえますか?
ベストアンサー1
mksh
Androidはデフォルトでshの親セットであるMirBSD Kornシェルを実行します。これには、配列を使用できないなど、bashスクリプトと比較していくつかの制限があります。
また、コアユーティリティはAndroid専用のツールボックスまたはおもちゃ箱小さなプログラム、使い方はしばしばわずかに異なり、時には制限されます(例tar
:)
Androidデバイスを使用するようにカスタマイズしてください。忙しい箱拡張機能はコアユーティリティを欠いており、アプレットもビルドに依存します。
Androidの権限は次のように拡張されます。SELinuxファイル操作に関しては、これには別のスクリプト方法が必要です。たとえば、sed
ファイルがセカンダリコンテキストを失うため、通常どおり使用できません。
常にできるだけ多くのシェル(mksh、ash)に対してスクリプトをテストし、コアユーティリティを使いやすく保つ必要があります(たとえば、コードはBSD grep、toybox grep、busybox grepで動作する必要があります)
デバイスに実際のキーボードがなく、コマンドラインを確認すると小さなタッチスクリーンが面倒なので、インタラクティブスクリプトを使用しないでください。
パスはAndroidデバイスでも少し異なります。たとえば、shebangはRAMではなくユーザースペースに保持される#!/system/bin/sh
ディレクトリです。/data/local/tmp
それを言及する価値があるadbシェル何よりも特権があります。端末エミュレータ基本的に。 adbコマンドを使用してホスト上で実行されるスクリプトは、明示的に提供する必要があります。経験のないユーザーは、クライアントで実行されるシェルスクリプトと混同する可能性があります。
回復モードで実行されるスクリプトには関連するスクリプト言語があります。エディフィ該当するシェルスクリプトの交換。回復モード()のシェルはash
Android起動モード()とは異なり、mksh
動作は回復ビルドによって異なります。アプレットを失う手間を避けるために、ビジボックスと必要なすべてのバイナリをバンドルする必要があります(例awk
:)
スクリプト言語自体は変わらず、特定の構文はありません。 bashスクリプトをAndroidに移植することは絶対に可能であり、特別な知識を必要としません。これは他の環境なので、ターゲットプラットフォームでスクリプトをテストする必要があります。
つまり、幸せなスクリプトです:)