Как мой сценарий оболочки может работать с файлами в другой папке? - PullRequest
1 голос
/ 11 декабря 2011

У меня есть две папки, A и B. В папке A у меня есть файл данных.В папке B у меня есть программные файлы.Я хочу, чтобы программы в папке B работали с файлом в папке A, запущенным из папки B.

Единственный способ, которым я мог придумать, - это скрипт, который перемещает файл из A в B, запускает командыиз папки B файла, затем перемещает выходной файл из B обратно в A. В любом случае, я мог бы сохранить файл в папке A и запускать программы из B?

Вот мой сценарий прямо сейчас.Это очень грязно, и я думаю, что должен быть более чистый способ сделать это.

echo "Signing with test keys....";
     mv *.apk $HOME/signapk/files/not_signed.apk;
     cd $HOME/signapk/files;
     java -jar signapk.jar testkey.x509.pem testkey.pk8 not_signed.apk signed_apk.apk;
     mv not_signed.apk $HOME/signapk/original.apk;
     mv signed_apk.apk $HOME/signapk/test_signed.apk;;
  2) echo "Signing with private keys....";
     mv *.apk $HOME/signapk/files/not_signed.apk;
     cd $HOME/signapk/files;
     java -jar signapk.jar certificate.pem key.pk8 not_signed.apk signed_apk.apk;
         mv not_signed.apk $HOME/signapk/original.apk;
     mv signed_apk.apk /$HOME/signapk/private_signed.apk;;
  3) echo "Press enter to contintue with zipaligning";
     read ;
     mv *.apk $HOME/signapk/files/zipalign.apk;
     cd $HOME/signapk/files;
     ./zipalign -v -f 4 zipalign.apk zipaligned.apk;
     mv zipaligned.apk $HOME/signapk/zipaligned;
     mv zipalign.apk $HOME/signapk/original.apk;;

Ответы [ 2 ]

1 голос
/ 11 декабря 2011

Рассматривали ли вы использование символических ссылок - из вашего временного каталога B в другой каталог A - с помощью команды ln -s ?

Чтобы вы могли сначала создать новый пустой каталог

mydir=$(mktemp -d)

попросите свою оболочку очистить ее при выходе

trap "rm -rf $mydir" EXIT

тогда вы можете заполнить его символическими ссылками

ln -s *.apk $mydir

наконец запустите вашу программу там

cd $mydir
yourprog *.apk

и т.д.. Не стесняйтесь адаптировать это к вашим потребностям.

0 голосов
/ 06 января 2012

Я понял!Все, что вам нужно сделать, это добавить путь к файлу.Таким образом:

java -jar signapk.jar nameof.apk

становится:

java -jar ./path/to/signapk.jar nameof.apk
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...