LINUX.ORG.RU

Перевод скрипта из Batch(Win) в Bash(Linux) ???

 , , , ,


0

1

Добрый день нужна помощь перевода скрипта из Batch(Win) в Bash(linux):

@echo off
title Upgrade Microsoft Download Center by Black Phreaker v1.0.7
color 0c
chcp 1251
mode con:cols=120 lines=30
cls


@echo Cannot connect to Microsoft Download Center
@echo Do you want to exit? (y/n)
@echo.

@SET /P dll="root@BlackPhreaker:~# "

rem *************************************************************
rem DLL
rem *************************************************************
@IF "%dll%"=="start" @SET dll="%~dp0\dll\baselib.001"
@IF "%dll%"=="kill"  @SET dll="%~dp0\dll\baselib.002"
@IF "%dll%"=="help"  @SET dll="%~dp0\dll\baselib.003"
@IF "%dll%"=="info"  @SET dll="%~dp0\dll\baselib.004"
rem *************************************************************
rem DLL
rem *************************************************************

@IF EXIST %dll%.dll @COPY %dll%.dll %dll%.bat
@IF EXIST %dll%.bat @CALL %dll%.bat
@IF EXIST %dll%.bat @DEL  %dll%.bat
Ответ на: комментарий от BlackPhreaker

Судя по исходному батнику, на винде у тебя был baselib.001.dll. Соответственно, либо переименуй baselib.001 в baselib.001.dll, либо убери .dll из последней строки terminal3.sh:

 [ -f "${dll}" ] && . "${dll}"

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

Так он и называется baselib.001.dll ... Насколько я понял он просто его не находит в папки dll Щас ищю причину

Не могли бы подсказать как возможно осуществить следующие:

Чтоб скрипт terminal3.sh 1) Создавал копию baselib.001.dll файла с расширением .sh 2) Потом запускал ее (baselib.001.sh) 3) После выхода из скрипта (terminal3.sh) удолял baselib.001.sh

Как это было организовано в батнике...

BlackPhreaker
() автор топика
Ответ на: комментарий от dexpl

вот так все работает

terminal.sh

#!/bin/bash

read -p "root@BlackPhreaker:~# " dll

dpZero="$(readlink -f "$0")"
#[ "$dll"=="start" ] && dll="$dpZero/dll/baselib.001"
[ "$dll"=="start" ] && sh ./baselib.001.dll
#[ "$dll"=="kill" ] && dll="$dpZero/dll/baselib.002"
#[ "$dll"=="help" ] && dll="$dpZero/dll/baselib.003"
#[ "$dll"=="info" ] && dll="$dpZero/dll/baselib.004"

[ -f "${dll}.dll" ] && . "${dll}.dll"

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

как возможно осуществить следующие <…>

Запросто:

[ -f "${dll}.dll" ] && . {
  cp "${dll}.dll" "${dll}.sh"
  sh "${dll}.sh"
  rm "${dll}.sh"
}
Но зачем вся эта возня с копированием-запуском-удалением, если можно сделать [ -f "${dll}.dll" ] && . "${dll}.dll"?

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

А теперь понятно...

Но вот почему не запускаются dllки я кажется разобрался осталось устранить проблему к размышлению...

#!/bin/bash

dpZero="$(readlink -f "$0")"

echo $dpZero
echo $PWD

Выводит следующее:
/root/Desktop/terminal/echo.sh
/root/Desktop/terminal


Вот теперь как можно устранить эту проблему с путями по чему не запускается dllки????
BlackPhreaker
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.