Я написал этот скрипт для копирования XML-файлов, которые я получил, на место на моей SD-карте. Однако когда я запускаю его в терминале, я получаю следующее. Может кто-нибудь объяснить, если я сделал что-то не так или что происходит?

  • cd /data/com.idv.android/cache/receivedxml/
  • /data/xml.sh[4]: cd: /data/com.idv.android/: нет такого файла или каталога
  • /data/xml.sh[7]: синтаксическая ошибка: неожиданно 'cat'

Дополнительная информация: Samsung Galaxy S2 Skyrocket / Rooted /

#!/system/bin/sh
set -x verbose

cd /data/data/com.idv.android/cache/receivedxml/
if ls *.xml &> /dev/null; then
  for file in *.xml
  do
    cat "$file" > "/storage/sdcard0/XMLList/${file}"
  done
fi
exit

2 ответа2

1

cp и cat не поддерживаются оригинальной системой Android. попробуйте установить busybox.

и cd /data / * / нужна привилегия root.

0

Ваша оболочка может не поддерживать метод вещей: &> /dev/null . Я думаю, что вы можете сделать это только в bash.

Попробуйте преобразовать вашу строку в:

if ls *.xml > /dev/null 2>&1; then

Кроме того, на всякий случай, но старайтесь не добавлять пробелы в заголовок:

#!/system/bin/sh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .