【问题标题】:script running through too fast! possibly脚本运行速度太快了!可能
【发布时间】:2013-01-16 13:39:53
【问题描述】:

我一直在尝试编写脚本来强化 android。我没有成功!

我正在通过模拟器运行 AVD,并已尝试使用我加载的 android shell 和 bash shell。该脚本很简单,正如您将在下面看到的那样,每个命令都可以独立运行,但在脚本中它只是运行得太快或其他什么。

我知道顶部没有 shebang,但那是因为我插入一个时出错。

我的脚本是:

echo             ANDROID
echo      HARDENING STARTED
device=/dev/block/mtdblock0
mount -o rw,remount $device /system
#removing files in the /system/xbin directory
rm  /system/xbin/tcpdump
rm  /system/xbin/su
#removing files in the /system/bin directory
rm  /system/bin/bootanimation
rm  /system/bin/dumpstate
rm  /system/bin/ping
rm  /system/bin/ping6
echo                    ANDROID
echo              HARDENING COMPLETE

我已经把所有缩进都去掉了,因为我认为这可能会导致错误,并且目录和文件肯定存在。我已经用了三天了,它已经很薄了。

我在开始时有一个 if 语句来选择其他手机上的设备,但我把它拿出来试图减少错误(这就是我声明设备而不是安装的原因)。

这是错误:

             ANDROID
      HARDENING STARTED
mount: no such file or directory exist
, no such file or directorytcpdump   
, no such file or directorysu
, no such file or directoryootanimation
, no such file or directoryumpstate
, no such file or directorying
, no such file or directorying6

     ANDROID
 HARDENING COMPLETED

注意目录后的合并,这不是错别字。

谢谢瑞恩

【问题讨论】:

  • 好像$device变量为空;你能在 mount 命令之前尝试echo $device 吗?

标签: android linux bash shell


【解决方案1】:

您在 Windows 系统上编辑了此文件,它具有 DOS 样式的行尾 (<cr><lf>)。将其转换为使用 Unix 风格的行尾标记 (<lf>),它应该可以正常工作。任何体面的程序员的编辑都可以为你做这件事,或者你可以do it using standard command line tools

顺便说一句,shell 根本不关心缩进。这个:

echo Hello
echo world.

等同于:

echo Hello
              echo world.

【讨论】:

  • 错综复杂的错误消息清楚地表明情况确实如此。文件名被打印出来,它以\r 结尾,因此光标移回第一列,错误消息被打印在文件名的开头。它甚至解释了挂载的错误,因为设备名称最后也得到了\r
【解决方案2】:

将行尾改为Unix风格,将解决你所有的问题。

【讨论】:

    猜你喜欢
    • 2022-12-03
    • 2023-03-23
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多