LINUX.ORG.RU

Трансляция sh в .с и установка в openwrt

 , ,


0

1

Здравствуйте! Такой вопрос, может кто подскажет? Пишу скрипт

#!/bin/sh
echo «it’s work»

Транслирую его через shc в .с, дальше этот файл .с компилирую и получаю пакет .ipk

Устанавливаю пакет на роутере, устанавливается, все норм. Запускаю, вижу в терминале вывод it’s work, тут тоже все хорошо.

Но теперь пишу скрипт

#!/bin/sh
airodump-ng wlan0

Это например. Присваиваю права на выполнение, скрипт работает, запускает airodump-ng. Но если я этот скрипт транслирую в .с и компилирую, то после установки на роутер при запуске программа пишет applet not found. В чем может быть проблема?

Могу приложить полученный код .c .Если нужно. Возможно ли, что это линковка?


Ответ на: комментарий от mos

Ну че ты начинаешь, нормально ж общались. Если это какие-то глупые вопросы, так подскажи лучше, что читать и я закрою тему. Я с линуксом две недели знаком по необходимости. Ну может три.

try20 ()
Ответ на: комментарий от try20

Или так не сработает?

Если б в этом shc был нормальный код, а не бинарная магия, я бы может и сказал, сработает или нет. Но увы, вам проще проверить же.

vodz ★★★★★ ()
Ответ на: комментарий от anonymous

Причем тут код?

Притом, что он дал валидный sh код и спрашивает, быдет работать или нет. Узнать, понимает ли этот транслятор код export PATH=xxx глядя на код shc сказать нельзя.

vodz ★★★★★ ()
Ответ на: комментарий от vodz

Подкину инфы, которую помню: продукт работы shc весь код скрипта скармливает шеллу как единое целое (скорее через -c, чем через stdin, но точно не помню).

Applet not found как бы намекает на связь с busybox (типа есть линк ping->busybox, но в busybox пинг не вкомпилён).

Не удивлюсь, если shc запускает не /bin/sh, а /bin/bash или что-то в этом роде, плюя на то, что написано в #!.

Можно поставить strace и посмотреть точно, что делает скомпиленный shc скрипт:

strace -f -s4096 -o script.strace ./my-compiled-script
LeninGad ()
Последнее исправление: LeninGad (всего исправлений: 2)