不懂SHELL 帮忙加注释

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
hceasy
论坛版主
帖子: 6009
注册时间: 2010-04-17 18:51
系统: W10

不懂SHELL 帮忙加注释

#1

帖子 hceasy » 2012-04-02 15:35

APP2SD 里边的SH。
批量执行出错。只好看着一步一步执行了。

代码: 全选

#!/sbin/sh

if [ -e /dev/block/mmcblk0p2 ]; /** 检查了什么 ?**/
then
	if [ ! -d /system/sd ];  /***如果 system/sd 不存在 ?**/
	then
		mkdir /system/sd  /***创建 system/sd***/
                chown system.system /system/sd  /**更改所有者 ??*///
		chmod 771 /system/sd   /**更改权限 **/
		echo "Created /system/sd"   /** 提示创建完毕** /
	fi;

	busybox mount -t auto /dev/block/mmcblk0p2 /system/sd /**用busybox 中的挂载命令挂载?????**/
	chown system.system /system/sd   更改所有者  
	chmod 771 /system/sd   更改权限

	for i in app app-private dalvik-cache;  在 app app-pribate。。。 中执行下面的命令
        do
            if [ ! -d /system/sd/$i ];   检查   ..... 检查这个目录中的$i  ???  什么东西 ?? 到FI那里貌似是照着 上边的几个文件夹创建文件什么的。。。
            then
                mkdir /system/sd/$i
		echo "Created /system/sd/$1"
            fi

            chown system.system /system/sd/$i;    看来  Si 确实是个变量  估计是上边三个文件夹里的子文件。。。
            chmod 771 /system/sd/$i  更改这些文件的权限

            if [ -d /data/$i ] && [ ! -h /data/$i ];     这个 。。。。对比么 ????
            then
                busybox cp -a /data/$i/* /system/sd/$i/    用busy那个工具执行CP 命令  。。。。 安卓自己不带CP。。
                busybox rm -f /data/$i/*   删除老的
		echo "Moving /data/$1 to /system/sd/$1"  提示。
            fi;  循环结束了
        done;

        for i in app app-private;
        do
            if [ -d /data/$i ] && [ ! -h /data/$i ];     又是对比。。
            then
                busybox rm -rf /data/$i  删除了。
		echo "Created /data/$1 link"提示。
            fi;
            busybox ln -s /system/sd/$i /data/$i  把DATA下的那些链接到 SD文件里。  (APP2EXT中最主要的。。。  要不手机内存没装几个就满了。。)
        done;

        busybox mount -o bind /system/sd/dalvik-cache /data/dalvik-cache;   这个挂载了什么。。。。
        chown system.system /data/dalvik-cache;  改所有者
        chmod 771 /data/dalvik-cache; 改权限

	busybox cp /system/xbin/install-recovery.sh /system/etc/ 复制粘贴
	chmod 0755 /system/etc/install-recovery.sh    改权限。。

	tune2fs -j /dev/block/mmcblk0p2    验证分区2的格式。。。。 (晕,,这个为啥不写到开头。貌似也只是验证下。。。没多大意义)
	echo "App2SD Activated" 提示
	reboot	 重启了。。
	exit 0  退出
else
	echo -n "You have created EXT partition then format it! .."	
	echo
	echo -n "Unmounting all partitions ..."
	busybox umount -ddl /sdcard/ 2>&1 >>"$LOGFILE"
	busybox umount -f /sdcard > /dev/null 2>&1 >>"$LOGFILE"	
	busybox umount -f "/dev/block/mmcblk0p1" > /dev/null 2>&1 >>"$LOGFILE"
	busybox umount -f "/dev/block/mmcblk0p2" > /dev/null 2>&1 >>"$LOGFILE"
	echo "Done"
	echo
	echo -n "Removing the partitions ..."
	parted /dev/block/mmcblk0 rm 1
	parted /dev/block/mmcblk0 rm 2
	echo "Done"
	echo
	echo -n "Creating all the partitions ..."
	echo "FAT32"
	parted /dev/block/mmcblk0 mkpartfs primary fat32 0 1466
	echo "EXT2"
	parted /dev/block/mmcblk0 mkpartfs primary ext2 1466 1978
	tune2fs -j /dev/block/mmcblk0p2
	echo
	echo "All partition created"
	echo
	sh /system/xbin/app2sd.sh
fi
上次由 hceasy 在 2012-04-02 15:58,总共编辑 2 次。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 不懂SHELL 帮忙加注释

#2

帖子 枫叶饭团 » 2012-04-02 15:37

安猪手机里的sh?看求不懂
头像
ljj_jjl2008
论坛版主
帖子: 14256
注册时间: 2007-09-16 8:29

Re: 不懂SHELL 帮忙加注释

#3

帖子 ljj_jjl2008 » 2012-04-02 15:40

刚研究了2天shell,主要是文件操作和字符串处理部分,正在头大状态中。
我水平不够,无能为力了。
头像
hceasy
论坛版主
帖子: 6009
注册时间: 2010-04-17 18:51
系统: W10

Re: 不懂SHELL 帮忙加注释

#4

帖子 hceasy » 2012-04-02 16:09

算了 直接判断去掉。。。
因为第一个判断我就过不去,但是手机里边确实加载了SD卡的第二分区。
头像
xjpvictor
帖子: 2837
注册时间: 2007-08-22 15:55
系统: Archlinux
来自: 新加坡
联系:

Re: 不懂SHELL 帮忙加注释

#5

帖子 xjpvictor » 2012-04-02 18:33

我就半吊子水平,抛砖引玉一下。。

代码: 全选

#!/sbin/sh

if [ -e /dev/block/mmcblk0p2 ];   /dev/block/mmcblk0p2文件存在为真
then
   if [ ! -d /system/sd ];  /system/sd是目录为真
   then
      mkdir /system/sd  
                chown system.system /system/sd  更改所有者为system,组为system
      chmod 771 /system/sd   /**更改权限 **/
      echo "Created /system/sd"   /** 提示创建完毕** /
   fi;

   busybox mount -t auto /dev/block/mmcblk0p2 /system/sd /**不懂busybox,但看着像是挂载**/
   chown system.system /system/sd   更改所有者  
   chmod 771 /system/sd   更改权限

   for i in app app-private dalvik-cache;  i依次赋值为app app-private dalvik-cache
        do
            if [ ! -d /system/sd/$i ];   目录不存在为真
            then
                mkdir /system/sd/$i
      echo "Created /system/sd/$1"
            fi

            chown system.system /system/sd/$i;    看来  Si 确实是个变量  估计是上边三个文件夹里的子文件。。。
            chmod 771 /system/sd/$i  更改这些文件的权限

            if [ -d /data/$i ] && [ ! -h /data/$i ];     /data/$i是目录,并且不是链接
            then
                busybox cp -a /data/$i/* /system/sd/$i/    用busy那个工具执行CP 命令  。。。。 安卓自己不带CP。。
                busybox rm -f /data/$i/*   删除老的
      echo "Moving /data/$1 to /system/sd/$1"  提示。
            fi;  循环结束了
        done;

        for i in app app-private;
        do
            if [ -d /data/$i ] && [ ! -h /data/$i ];     同上
            then
                busybox rm -rf /data/$i  删除了。
      echo "Created /data/$1 link"提示。
            fi;
            busybox ln -s /system/sd/$i /data/$i  把DATA下的那些链接到 SD文件里。  (APP2EXT中最主要的。。。  要不手机内存没装几个就满了。。)
        done;

        busybox mount -o bind /system/sd/dalvik-cache /data/dalvik-cache;   这个挂载了什么。。。。
        chown system.system /data/dalvik-cache;  改所有者
        chmod 771 /data/dalvik-cache; 改权限

   busybox cp /system/xbin/install-recovery.sh /system/etc/ 复制粘贴
   chmod 0755 /system/etc/install-recovery.sh    改权限。。

   tune2fs -j /dev/block/mmcblk0p2    验证分区2的格式。。。。 (晕,,这个为啥不写到开头。貌似也只是验证下。。。没多大意义)
   echo "App2SD Activated" 提示
   reboot    重启了。。
   exit 0  退出
else
   echo -n "You have created EXT partition then format it! .."   
   echo
   echo -n "Unmounting all partitions ..."
   busybox umount -ddl /sdcard/ 2>&1 >>"$LOGFILE"
   busybox umount -f /sdcard > /dev/null 2>&1 >>"$LOGFILE"   
   busybox umount -f "/dev/block/mmcblk0p1" > /dev/null 2>&1 >>"$LOGFILE"
   busybox umount -f "/dev/block/mmcblk0p2" > /dev/null 2>&1 >>"$LOGFILE"
   echo "Done"
   echo
   echo -n "Removing the partitions ..."
   parted /dev/block/mmcblk0 rm 1
   parted /dev/block/mmcblk0 rm 2
   echo "Done"
   echo
   echo -n "Creating all the partitions ..."
   echo "FAT32"
   parted /dev/block/mmcblk0 mkpartfs primary fat32 0 1466
   echo "EXT2"
   parted /dev/block/mmcblk0 mkpartfs primary ext2 1466 1978
   tune2fs -j /dev/block/mmcblk0p2
   echo
   echo "All partition created"
   echo
   sh /system/xbin/app2sd.sh
fi
Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
头像
hceasy
论坛版主
帖子: 6009
注册时间: 2010-04-17 18:51
系统: W10

Re: 不懂SHELL 帮忙加注释

#6

帖子 hceasy » 2012-04-02 18:52

多谢LS了。
这个里面没有修改过类似 arch下的rc的步骤,每次手机关机再开 那个mmc 2分区怎么挂载啊。。。。
头像
xjpvictor
帖子: 2837
注册时间: 2007-08-22 15:55
系统: Archlinux
来自: 新加坡
联系:

Re: 不懂SHELL 帮忙加注释

#7

帖子 xjpvictor » 2012-04-02 19:05

hceasy 写了:多谢LS了。
这个里面没有修改过类似 arch下的rc的步骤,每次手机关机再开 那个mmc 2分区怎么挂载啊。。。。
貌似tune2fs -j /dev/block/mmcblk0p2是把这个分区加到filesystem里,下次开机应该就会自动挂载了
Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
头像
hceasy
论坛版主
帖子: 6009
注册时间: 2010-04-17 18:51
系统: W10

Re: 不懂SHELL 帮忙加注释

#8

帖子 hceasy » 2012-04-02 19:32

再次过来感谢楼上
把命令分解了执行 终于在我的手机上开启了APP2EXT。。
成为第一个吃螃蟹的人。。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 不懂SHELL 帮忙加注释

#9

帖子 枫叶饭团 » 2012-04-02 19:34

APP2EXT,直接把sd卡格成ext就行了嘛
头像
hceasy
论坛版主
帖子: 6009
注册时间: 2010-04-17 18:51
系统: W10

Re: 不懂SHELL 帮忙加注释

#10

帖子 hceasy » 2012-04-02 19:47

枫叶饭团 写了:APP2EXT,直接把sd卡格成ext就行了嘛
因手机型号而异,比如我这个就量身编译了一个模块儿。
XT319 MOTO 小众手机 资料少之又少。。。。
头像
xjpvictor
帖子: 2837
注册时间: 2007-08-22 15:55
系统: Archlinux
来自: 新加坡
联系:

Re: 不懂SHELL 帮忙加注释

#11

帖子 xjpvictor » 2012-04-02 19:58

哭熊也是用的moto啊。。 :em51
Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
头像
hceasy
论坛版主
帖子: 6009
注册时间: 2010-04-17 18:51
系统: W10

Re: 不懂SHELL 帮忙加注释

#12

帖子 hceasy » 2012-04-02 21:06

MOTO的硬件皮实。
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 不懂SHELL 帮忙加注释

#13

帖子 YeLee » 2012-04-02 21:09

我这边busybox居然要root……
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
回复