Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Переход по каталогам в скриптах sh [Решено]  (Прочитано 4128 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #15 : 05 Марта 2020, 18:45:34 »
Uint32, показывайте вывод:
cat ~/script.sh
ls -l ~/script.sh
ls -l /srv/programs
ls -l /srv/programs/one

А то вообще ерунда какая-то выходит, судя по выводам ваших команд

Пользователь добавил сообщение 05 Марта 2020, 18:53:54:
.acetone,
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 05 Марта 2020, 18:53:54 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Uint32

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #16 : 05 Марта 2020, 19:13:07 »
Uint32, показывайте вывод:
cat ~/script.sh
ls -l ~/script.sh
ls -l /srv/programs
ls -l /srv/programs/one

А то вообще ерунда какая-то выходит, судя по выводам ваших команд

Не вопрос:
andrey@vps:~$ cat ~/script.sh
#!/bin/sh
/srv/programs/one
screen -S prog1 -dm ./runandrey@vps:~$
andrey@vps:~$ ls -l ~/script.sh
-rwxrwxrwx 1 root root 62 Mar  5 18:48 /home/andrey/script.sh
andrey@vps:~$ ls -l /srv/programs
total 101680
drwxr-xr-x 13 root    root           4096 Feb 29 23:51 one
drwxr-xr-x 13 root    root           4096 Jan 11 18:06 two
drwxr-xr-x 13 root    root           4096 Feb 29 23:51 three
drwxr-xr-x 13 root    root           4096 Jan 11 18:06 four
andrey@vps:~$ ls -l /srv/programs/one
total 57176
-rw-r--r-- 1 root root   208384 Feb 29 23:51  BNCSutil.dll
drwxr-xr-x 8 root root     4096 Feb 29 23:51  StormLib
-rwxrwxrwx 1 root root 42527152 Feb 29 23:51  run
-rw-r--r-- 1 root root    15000 Feb 29 23:51  language.cfg
-rw-r--r-- 1 root root    17092 Feb 29 23:51  language_german.cfg
-rw-r--r-- 1 root root    20385 Feb 29 23:51  language_russian.cfg
-rw-r--r-- 1 root root    17209 Feb 29 23:51  language_spanish.cfg
-rw-r--r-- 1 root root     2404 Feb 29 23:51  mysql_create_tables_v1.sql
-rw-r--r-- 1 root root     3159 Feb 29 23:51  mysql_create_tables_v2.sql
-rw-r--r-- 1 root root      753 Feb 29 23:51  mysql_upgrade_v1-v2.sql
-rw-r--r-- 1 root root     2444 Feb 29 23:51  out.log
drwxr-xr-x 5 root root     4096 Feb 29 23:51  zlib
-rw-r--r-- 1 root root    59904 Feb 29 23:51  zlib1.dll

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #17 : 05 Марта 2020, 19:19:48 »
andrey@vps:~$ cat ~/script.sh
#!/bin/sh
/srv/programs/one
screen -S pro1 -dm ./runandrey@vps:~$
cd куда исчезло? Вернуть.
Вроде необязательно, но лучше заканчивать скрипт пустой строкой

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 05 Марта 2020, 19:31:41 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #18 : 05 Марта 2020, 19:43:51 »
#!/bin/sh
Попробуйте поменять на#!/bin/bash
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Uint32

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #19 : 05 Марта 2020, 22:33:26 »
#!/bin/sh
Попробуйте поменять на#!/bin/bash

Может я уже туплю, но вы походу невнимательный, смотрите выше результат работы sh и bash. Ошибки разные на вид, но оба варианта не работают.

Alien175, в самом начале человек RenzRv написал, что cd можно убрать, это я и сделал. Хорошо, верну обратно.
Товарищ acetone оставил ссылки с похожими проблемами, где переход в каталог заносится в функцию, которая потом вызывается. Ещё там речь идёт о каких-то алиасах, но примеры немногим другие и пока я не сообразил что к чему.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #20 : 05 Марта 2020, 23:22:17 »
cd можно убрать, это я и сделал.
не спорю, что можно, только не во всех шелл это работает. У /bin/sh - не работает. Поэтому, всё-таки укажите cd
Цитировать
RenzRv написал, что cd можно убрать, это я и сделал.
Уважаемый ReNzRv намекал на то, что вообще можно обойтись без лишней команды cd, указав полный путь непосредственно в screen. Прочитайте внимательнее его сообщение
(Нажмите, чтобы показать/скрыть)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #21 : 05 Марта 2020, 23:44:16 »
вы походу невнимательный, смотрите выше результат работы sh и bash
По моему проще выполнять в точности что Вам советуют, а не показывать свою сверхкрутизну. Вот такой код#!/bin/bash
cd /srv/programs/one
pwd
screen -S pro1 -dm ./run
echo started
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Uint32

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #22 : 06 Марта 2020, 00:03:41 »
Как только возникла эта проблема с сд, я сразу же хотел путь указывать внутри скрина, но не нашел способ выйти из скрина. В ручную это контрл+a+d. А как это на уровне скрипта сделать так и не понял.

Ведь после запуска одной программы, нужно создать следующий скрин и запустить 2 программу. На данный момент таких программ 6. Вот и дилемма.

 Но мне все равно интересно, почему моя 18 версия убунты отказывается переходить по каталогам внутри скрипта. Кстати у меня ISP 5 стоит на машине, влияет это на что-то? Не знаю. Может имеется альтернативное решение скриптам?

п.с. Вчера прочел комментарий человека, который пытался помочь с решением похожей проблеммы. Он ссылался на тип сохранения файла .sh  Мол, файл можно сохранить в 3 типах:
win
mac
unix или ещё как-то, в общем под Линукс.
А я как делал: на рабочем столе, у себя в виндоус 7 создал файл с нужным расширением script.sh, и отредактировав отправил через фтп-клиент.
В каком типе он сохранен, значения не придавал особого.
« Последнее редактирование: 06 Марта 2020, 00:50:43 от Uint32 »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #23 : 06 Марта 2020, 00:08:53 »
Uint32, опять словесно вы всё рассказываете. Нам нужны команды и выводы команд
но не нашел способ выйти из скрина. В ручную это контрл+a+d. А как это на уровне скрипта сделать так и не понял.
screen -dmS name ./runуже это делает.
 
Может имеется альтернативное решение скриптам?
Юниты systemd.


Пользователь добавил сообщение 06 Марта 2020, 00:15:06:
#!/bin/bash
screen -S pro1 -dm /srv/programs/one/run
Запускайте такой скрипт. Вывод - на форум.

Пользователь добавил сообщение 06 Марта 2020, 00:20:04:
На данный момент таких программ 6
с одной для начала давайте разберёмся
« Последнее редактирование: 06 Марта 2020, 00:20:04 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #24 : 06 Марта 2020, 09:29:10 »
Цитировать
А я как делал: на рабочем столе, у себя в виндоус 7 создал файл с нужным расширением script.sh, и отредактировав отправил через фтп-клиент.
Так делать нельзя. Скрипты все не рабочие будут. Даже копипастить из файлов редактированных в винде нельзя.


Пользователь добавил сообщение 06 Марта 2020, 09:35:11:
Из винды можно только в редакторах кода с поддержкой linux типа окончания строк.
Geany например не плохой и бесплатный.
« Последнее редактирование: 06 Марта 2020, 09:35:11 от ReNzRv »

Оффлайн Uint32

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #25 : 06 Марта 2020, 13:12:03 »
Azure, вот результат работы кода:
andrey@vps:~$ bash script.sh
script.sh: line 2: cd: $'/srv/programs/one\r': No such file or directory
script.sh: line 3: $'pwd\r': command not found
started

Alien175, Такой вариант:

#!/bin/bash
screen -S prog1 -dm /srv/programs/one/run
с точкой и слешем работает точно так же
screen -S prog1 -dm /srv/programs/one/./run

сработал, программа запустилась но с ошибкой. В ручном режиме идеально запускается и работает, через скрипт ей что-то не нравится.
Запускал так: bash script.sh
« Последнее редактирование: 06 Марта 2020, 13:14:13 от Uint32 »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #26 : 06 Марта 2020, 14:35:06 »
Цитировать
через скрипт ей что-то не нравится.
Навернр вот это:
Цитировать
\r
Откуда это я уже написал...

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #27 : 06 Марта 2020, 15:49:19 »
1. Кодировка должна быть UTF-8
2. Перенос строки LF(Unix)

(Нажмите, чтобы показать/скрыть)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Uint32

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #28 : 06 Марта 2020, 16:02:56 »
Создал фаил в убунте с нуля, вбил код, запустил, - ошибка такая же. Знающие люди, кто давно разбирается в этой программе, сказали, что перед запуском скрина в неактивном состоянии (-dm), нужно находиться заблаговременно в нужном каталоге.
Так что радоваться долго не пришлось (-

п.с Создал в убунте 2 скрипт с нуля, ничего не перетаскивая из виндоус, поставил код Azure:
#!/bin/bash
cd /srv/programs/one
pwd
screen -S pro1 -dm ./run
echo started
и вуаля, скрипт заработал! Ура! Целых 2 дня геморроя с 3 строчками кода...

Правда осталось одно неудобство, я привык все редактировать на виндоус, затем перетаскивать на линкс через фтп клиент. Это мне чего, придется привыкать к нано редактору?
« Последнее редактирование: 06 Марта 2020, 16:34:00 от Uint32 »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Переход по каталогам в скриптах sh
« Ответ #29 : 06 Марта 2020, 16:43:54 »
Знающие люди, кто давно разбирается в этой программе, сказали, что перед запуском скрина в неактивном состоянии (-dm), нужно находиться заблаговременно в нужном каталоге.
Не нужно совсем. Это может вашей спец. программе которую Вы пытаетесь запускать нужно, другим нет.
Запустите например в скрине для проверки баш скрипт такого содержания:
#!/bin/bash
while :; do date; sleep 1; done
Дайте ему права:
chmod +x test.shи запускайте его таким скриптом:
#!/bin/bash
screen -dm -S test /путь/test.sh
Работает?

(Нажмите, чтобы показать/скрыть)


 

Страница сгенерирована за 0.066 секунд. Запросов: 25.