The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Работа команды cd в shell скрипте?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Пользовательские проблемы / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 03-Окт-06, 04:30 
День добрый.
Есть простейший скрипт с именем test:
...
echo test1
cd /usr/local/
echo test2
...
При его выполнении (./test) на экран вылазиет следующее:
test1
cd: can't cd to /usr/local/
test2
Если просто в консоле cd /usr/local/ , то все, естественно, работает.
Объясните пожалуйста, почему cd не работает в скрипте? Скрипт должен запускать программу, (при старте системы) но только из ее (программы) директории. Соответственно сначала нужно перейти в папку скрипта. Где тут грабли?
FreeBSD 6.1
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Работа команды cd в shell скрипте?"  +/
Сообщение от newser (??) on 03-Окт-06, 08:59 
>...
>echo test1
>cd /usr/local/
>echo test2
>...

А если убрать последний слэш?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Работа команды cd в shell скрипте?"  +/
Сообщение от Ошьищ on 03-Окт-06, 09:49 
>А если убрать последний слэш?
Убирал, каак только не извращался, все одно и тоже.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Работа команды cd в shell скрипте?"  +/
Сообщение от Ultimate on 03-Окт-06, 09:54 
>День добрый.
>Есть простейший скрипт с именем test:
>...
>echo test1
>cd /usr/local/
>echo test2
>...
>При его выполнении (./test) на экран вылазиет следующее:
>test1
>cd: can't cd to /usr/local/
>test2
>Если просто в консоле cd /usr/local/ , то все, естественно, работает.
>Объясните пожалуйста, почему cd не работает в скрипте? Скрипт должен запускать программу,
>(при старте системы) но только из ее (программы) директории. Соответственно сначала
>нужно перейти в папку скрипта. Где тут грабли?
>FreeBSD 6.1

[root@null ~]# cat script.sh
#!/bin/sh
echo "test1"
cd /usr/local/
echo "test2"
[root@null ~]# ./script.sh
test1
test2


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 03-Окт-06, 10:08 
>[root@null ~]# cat script.sh
>#!/bin/sh
>echo "test1"
>cd /usr/local/
>echo "test2"
>[root@null ~]# ./script.sh
>test1
>test2

Cделал тоже самое, при запуске пишет:
./test.sh: Command not found.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Работа команды cd в shell скрипте?"  +/
Сообщение от Дениска (??) on 03-Окт-06, 10:17 
>>[root@null ~]# cat script.sh
>>#!/bin/sh
>>echo "test1"
>>cd /usr/local/
>>echo "test2"
>>[root@null ~]# ./script.sh
>>test1
>>test2
>
>Cделал тоже самое, при запуске пишет:
>./test.sh: Command not found.
может потому что скрипт называется script.sh ?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Работа команды cd в shell скрипте?"  +/
Сообщение от shaman (??) on 03-Окт-06, 11:12 
>>>[root@null ~]# cat script.sh
>>>#!/bin/sh
>>>echo "test1"
>>>cd /usr/local/
>>>echo "test2"
>>>[root@null ~]# ./script.sh
>>>test1
>>>test2
>>
>>Cделал тоже самое, при запуске пишет:
>>./test.sh: Command not found.
>может потому что скрипт называется script.sh ?

Такая ошибка возможна в случае, если неверно указан путь к интерпретатору в скрипте


wbr, shaman

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

33. "Работа команды cd в shell скрипте?"  +/
Сообщение от Fenix (??) on 07-Мрт-10, 15:51 
>[оверквотинг удален]
>>#!/bin/sh
>>echo "test1"
>>cd /usr/local/
>>echo "test2"
>>[root@null ~]# ./script.sh
>>test1
>>test2
>
>Cделал тоже самое, при запуске пишет:
>./test.sh: Command not found.

Такой косяк бывает если после #!/bin/sh стоит перевод строки в стиле Windows: \r\n
Если открыть файл редактором типа vi, то все сразу станет видно

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

34. "Работа команды cd в shell скрипте?"  +/
Сообщение от Artur email(??) on 22-Дек-17, 10:29 
>[оверквотинг удален]
>>>echo "test2"
>>>[root@null ~]# ./script.sh
>>>test1
>>>test2
>>
>>Cделал тоже самое, при запуске пишет:
>>./test.sh: Command not found.
> Такой косяк бывает если после #!/bin/sh стоит перевод строки в стиле Windows:
> \r\n
> Если открыть файл редактором типа vi, то все сразу станет видно

Спасибо, такого не знал. Помогло!


Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

7. "Работа команды cd в shell скрипте?"  +/
Сообщение от pwd on 03-Окт-06, 11:17 
>cd: can't cd to /usr/local/

видимо прав не хватает

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 03-Окт-06, 11:31 
>>cd: can't cd to /usr/local/
>
>видимо прав не хватает

Права делаю chmod 777 test.sh, из под рута.
Путь указан правильно - /bin/sh
Если поменять /bin/sh на /bin/csh - тоже самое.
Полтергейст :((

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Работа команды cd в shell скрипте?"  +/
Сообщение от Ultimate on 03-Окт-06, 11:33 
>>>cd: can't cd to /usr/local/
>>
>>видимо прав не хватает
>
>Права делаю chmod 777 test.sh, из под рута.
>Путь указан правильно - /bin/sh
>Если поменять /bin/sh на /bin/csh - тоже самое.
>Полтергейст :((

покажите
ls -la test.sh
cat test.sh

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 03-Окт-06, 12:11 

>покажите
>ls -la test.sh

-rwxrwxrwx  1 root  wheel  54 Oct  3 18:30 test.sh

>cat test.sh

#cat test.sh
#!/bin/csh
echo "test1"
cd /usr/local/
echo "test2"

запускаю скрипт, опять же, из под рута.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

10. "Работа команды cd в shell скрипте?"  +/
Сообщение от pwd on 03-Окт-06, 11:37 
>>>cd: can't cd to /usr/local/
>>
>>видимо прав не хватает
>
>Права делаю chmod 777 test.sh, из под рута.
>Путь указан правильно - /bin/sh
>Если поменять /bin/sh на /bin/csh - тоже самое.
>Полтергейст :((


Прав может не хватать пользователю _из под которого_ запускается скрипт - не может сделать cd в директорию

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

12. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 03-Окт-06, 16:10 
>
>Прав может не хватать пользователю _из под которого_ запускается скрипт - не
>может сделать cd в директорию

Есть еще мысли на предмет где порыться/подкрутить?
Система только что поставлена с нуля, если это имеет значение. Единственное, все это делается через ssh, но, как я понимаю, значения это иметь не должно в данной ситуации.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

13. "Работа команды cd в shell скрипте?"  +/
Сообщение от Ultimate on 03-Окт-06, 16:21 
>>
>>Прав может не хватать пользователю _из под которого_ запускается скрипт - не
>>может сделать cd в директорию
>
>Есть еще мысли на предмет где порыться/подкрутить?
>Система только что поставлена с нуля, если это имеет значение. Единственное, все
>это делается через ssh, но, как я понимаю, значения это иметь
>не должно в данной ситуации.

Попробуйте не через скрипт:

[root@null ~]# csh
% echo "test"; cd /usr/local/; echo "test2"

или сам скрипт:

[root@null ~]# cat script.sh
echo "test1"; cd /usr/local/; echo "test2"

странно всё конечно :/

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Работа команды cd в shell скрипте?"  +/
Сообщение от lavr email on 03-Окт-06, 16:25 
>>>
>>>Прав может не хватать пользователю _из под которого_ запускается скрипт - не
>>>может сделать cd в директорию
>>
>>Есть еще мысли на предмет где порыться/подкрутить?
>>Система только что поставлена с нуля, если это имеет значение. Единственное, все
>>это делается через ssh, но, как я понимаю, значения это иметь
>>не должно в данной ситуации.
>
>Попробуйте не через скрипт:
>
>[root@null ~]# csh
>% echo "test"; cd /usr/local/; echo "test2"
>
>или сам скрипт:
>
>[root@null ~]# cat script.sh
>echo "test1"; cd /usr/local/; echo "test2"
>
>странно всё конечно :/

ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на нем/них скриптов.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

16. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 04-Окт-06, 01:14 
>ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на
>нем/них скриптов.

А чуть чуть поподробнее можно, или болталогией будем заниматься?

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

19. "Работа команды cd в shell скрипте?"  +/
Сообщение от lavr email on 04-Окт-06, 11:17 
>>ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на
>>нем/них скриптов.
>
>А чуть чуть поподробнее можно, или болталогией будем заниматься?

вы перепутали свои постинги с моими, конкретно...

Ради бога - любая книга по Unix командам, работа в среде, использование shell,
настройка среды и написание скриптов
Тут же в документации на opennet.ru - LUG (Linux Users Guide), описание sh, bash
и программирование на них.
Излагать здесь целую книгу по основам работы в Unix-like OS никто не собирается,
изучайте и все получится.

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

20. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 04-Окт-06, 12:55 
>>>ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на
>>>нем/них скриптов.
>>
>>А чуть чуть поподробнее можно, или болталогией будем заниматься?
>
>вы перепутали свои постинги с моими, конкретно...
ой ли? :)
>Ради бога - любая книга по Unix командам, работа в среде, использование
>shell,
>настройка среды и написание скриптов
> Тут же в документации на opennet.ru - LUG (Linux Users Guide),
>описание sh, bash
>и программирование на них.
> Излагать здесь целую книгу по основам работы в Unix-like OS никто
>не собирается,
>изучайте и все получится.
Уважаемый, ну в самом деле, я ведь задал всего лишь навсего один простой вопрос, привел всего три! строчки кода. Можно все-таки дать определяющий ответ по сабжу, или ссылкой кинуть, где бы ясно описывалась суть того, что я не правильно делаю? Может прекратите заниматься пустословием наконец? (без обид) Уверяю Вас, прочту всю информацию которую Вы (надеюсь) мне все таки соизволите указать в плане определяющей. Я искал, я пытался найти ответ на этот вопрос, но видимо очень плохо пытался, и поэтому мы являемся с вами участниками данной дискуссии. Linux Users Guide? Замечательно! Пойду изучать. Но неужели ответ на мой вопрос находится на первой же странице данного мануала? :) Будьте так любезны сэкономьте немного моего времени и Вам вернется сторицей. На изучение всей информации относящейся к shell'ам, как к таковым, я думаю, уйдет не один день. Поймите, ответ на мой вопрос мне нужен сейчас. Можете вы помочь??
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

21. "Работа команды cd в shell скрипте?"  +/
Сообщение от newser (??) on 04-Окт-06, 13:03 
>Уважаемый, ну в самом деле, я ведь задал всего лишь навсего один
>простой вопрос, привел всего три! строчки кода. Можно все-таки дать определяющий
>ответ по сабжу, или ссылкой кинуть, где бы ясно описывалась суть
>того, что я не правильно делаю? Может прекратите заниматься пустословием наконец?
>(без обид) Уверяю Вас, прочту всю информацию которую Вы (надеюсь) мне
>все таки соизволите указать в плане определяющей. Я искал, я пытался
>найти ответ на этот вопрос, но видимо очень плохо пытался, и
>поэтому мы являемся с вами участниками данной дискуссии. Linux Users Guide?
>Замечательно! Пойду изучать. Но неужели ответ на мой вопрос находится на
>первой же странице данного мануала? :) Будьте так любезны сэкономьте немного
>моего времени и Вам вернется сторицей. На изучение всей информации относящейся
>к shell'ам, как к таковым, я думаю, уйдет не один день.
>Поймите, ответ на мой вопрос мне нужен сейчас. Можете вы помочь??
>

Приведите вывод следующего скрипта:

#!/bin/sh
pwd
cd /usr/local
pwd

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

23. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 04-Окт-06, 13:36 

>Приведите вывод следующего скрипта:
>
>#!/bin/sh
>pwd
>cd /usr/local
>pwd

./test.sh
: Command not found.

Если просто в консоли набрать pwd, то показывает текущий каталог.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

22. "Работа команды cd в shell скрипте?"  +/
Сообщение от lavr email on 04-Окт-06, 13:11 
>>>>ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на
>>>>нем/них скриптов.
>>>
>>>А чуть чуть поподробнее можно, или болталогией будем заниматься?
>>
>>вы перепутали свои постинги с моими, конкретно...
>ой ли? :)
>>Ради бога - любая книга по Unix командам, работа в среде, использование
>>shell,
>>настройка среды и написание скриптов
>> Тут же в документации на opennet.ru - LUG (Linux Users Guide),
>>описание sh, bash
>>и программирование на них.
>> Излагать здесь целую книгу по основам работы в Unix-like OS никто
>>не собирается,
>>изучайте и все получится.
>Уважаемый, ну в самом деле, я ведь задал всего лишь навсего один
>простой вопрос, привел всего три! строчки кода. Можно все-таки дать определяющий
>ответ по сабжу, или ссылкой кинуть, где бы ясно описывалась суть
>того, что я не правильно делаю? Может прекратите заниматься пустословием наконец?
>(без обид) Уверяю Вас, прочту всю информацию которую Вы (надеюсь) мне
>все таки соизволите указать в плане определяющей. Я искал, я пытался
>найти ответ на этот вопрос, но видимо очень плохо пытался, и

надо изучать предмет вместо поиска латок для отрывочных и поверхностных знаний,
точнее вовсе отсутствующих знаний

>поэтому мы являемся с вами участниками данной дискуссии. Linux Users Guide?
>Замечательно! Пойду изучать. Но неужели ответ на мой вопрос находится на
>первой же странице данного мануала? :) Будьте так любезны сэкономьте немного
>моего времени и Вам вернется сторицей. На изучение всей информации относящейся
>к shell'ам, как к таковым, я думаю, уйдет не один день.

shell - это основы работы в среде Unix, у вас они отсутствуют напрочь, далее
идет простой подход - пусть дураки работают, а я хочу вылезти на чужом горбу -
это про экономию времени и пустословие...

Если бы вы откровенно попросили бы НАПИСАТЬ за вас скрипт - это было бы чесно,
мб кто и помог, разницу улавливаете? Вместо этого вы занялись словесностью, что
и получили в ответ, не надо других держать за дураков.

>Поймите, ответ на мой вопрос мне нужен сейчас. Можете вы помочь??
>

а мне сейчас нужен новый автомобиль и четырехкомнатная квартира - поможете?

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

24. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 04-Окт-06, 13:38 
>
>а мне сейчас нужен новый автомобиль и четырехкомнатная квартира - поможете?
Пилите Шура, пилите (С)
Я понял лишь одно, в данном вопросе вы разбираетесь не лучше меня. Мне жаль потраченного на вас времени...
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

26. "Работа команды cd в shell скрипте?"  +/
Сообщение от lavr email on 04-Окт-06, 14:16 
>>
>>а мне сейчас нужен новый автомобиль и четырехкомнатная квартира - поможете?
>Пилите Шура, пилите (С)
>Я понял лишь одно, в данном вопросе вы разбираетесь не лучше меня.
>Мне жаль потраченного на вас времени...

ЧТД

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

27. "Работа команды cd в shell скрипте?"  +/
Сообщение от DEC (??) on 04-Окт-06, 14:40 
>Я понял лишь одно, в данном вопросе вы разбираетесь не лучше меня.
>Мне жаль потраченного на вас времени...

Прежде чем говорить такие вещи, поищите по форуму посты г-на lavr и Ваше мнение о его знаниях кардинально изменится.

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

28. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 04-Окт-06, 15:10 

>Прежде чем говорить такие вещи, поищите по форуму посты г-на lavr и
>Ваше мнение о его знаниях кардинально изменится.
Мне ничуть не интересны посты, как вы выразились, гражданина lavr.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

29. "Работа команды cd в shell скрипте?"  +/
Сообщение от Fuzzy email(??) on 04-Окт-06, 15:19 
>
>>Прежде чем говорить такие вещи, поищите по форуму посты г-на lavr и
>>Ваше мнение о его знаниях кардинально изменится.
>Мне ничуть не интересны посты, как вы выразились, гражданина lavr.

игнор.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

31. "Работа команды cd в shell скрипте?"  +/
Сообщение от newser (??) on 04-Окт-06, 18:23 
>>
>>а мне сейчас нужен новый автомобиль и четырехкомнатная квартира - поможете?
>Пилите Шура, пилите (С)
>Я понял лишь одно, в данном вопросе вы разбираетесь не лучше меня.
>Мне жаль потраченного на вас времени...


Без комментариев!

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

15. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 04-Окт-06, 01:13 
>Попробуйте не через скрипт:
>
>[root@null ~]# csh
>% echo "test"; cd /usr/local/; echo "test2"

Пишет: %: Too many arguments.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

17. "Работа команды cd в shell скрипте?"  +/
Сообщение от newser (??) on 04-Окт-06, 09:17 
>>Попробуйте не через скрипт:
>>
>>[root@null ~]# csh
>>% echo "test"; cd /usr/local/; echo "test2"
>
>Пишет: %: Too many arguments.

Это пипец! Jimbo, без обид, но Вы бы вместо того, чтобы флудить в форуме, почитали бы хоть что-нибудь про shell. Статей и книг полно, даже здесь на opennet. Поиск рулит!

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

18. "Работа команды cd в shell скрипте?"  +/
Сообщение от Jimbo on 04-Окт-06, 09:28 

>Это пипец! Jimbo, без обид, но Вы бы вместо того, чтобы флудить
>в форуме, почитали бы хоть что-нибудь про shell. Статей и книг
>полно, даже здесь на opennet. Поиск рулит!

В том то все и дело, что в доках/манах скрипт так и написан, как я писал изначально, но вылазят эти грабли. Если вы знаете источник способный явно указать, что я делю не так, будьте так любезны, укажите мне его пожалуйста, буду Вам весьма признателен и благодарен.
Собственное перелопачивание яндексоподобных гуру, мне, ни коим образом не помогло, в виду отсутствия похожих проблем.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

25. "Работа команды cd в shell скрипте?"  +/
Сообщение от Gennadi email(??) on 04-Окт-06, 13:54 
>Единственное, все это делается через ssh, но, как я понимаю, значения это иметь не должно в данной ситуации.

... иногда очень даже имеет.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

30. "Работа команды cd в shell скрипте?"  +/
Сообщение от seller on 04-Окт-06, 17:23 
>День добрый.
>Есть простейший скрипт с именем test:
>...
>echo test1
>cd /usr/local/
>echo test2
>...
>При его выполнении (./test) на экран вылазиет следующее:
>test1
>cd: can't cd to /usr/local/
>test2
>Если просто в консоле cd /usr/local/ , то все, естественно, работает.
>Объясните пожалуйста, почему cd не работает в скрипте? Скрипт должен запускать программу,
>(при старте системы) но только из ее (программы) директории. Соответственно сначала
>нужно перейти в папку скрипта. Где тут грабли?
>FreeBSD 6.1


у меня скрипт cder:
#!/bin/sh
pwd
cd /home/ && echo "cd done!"
pwd


потом chmod +x cder
./cder

Вот его вывод:
/home/kts
cd done!
/home

ничего сверхъестественного и все работает...
Ежели не работает, то замените интерпретатор на bash (если он у вас установлен, см `which bash`). Он поразвернутее пишет ошибку, типа "./cder: line 3: cd: /homea/: No such file or directory"...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру