День добрый.
Есть простейший скрипт с именем 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
>...
>echo test1
>cd /usr/local/
>echo test2
>...А если убрать последний слэш?
>А если убрать последний слэш?
Убирал, каак только не извращался, все одно и тоже.
>День добрый.
>Есть простейший скрипт с именем 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
>[root@null ~]# cat script.sh
>#!/bin/sh
>echo "test1"
>cd /usr/local/
>echo "test2"
>[root@null ~]# ./script.sh
>test1
>test2Cделал тоже самое, при запуске пишет:
./test.sh: Command not found.
>>[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 ?
>>>[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
>[оверквотинг удален]
>>#!/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, то все сразу станет видно
>[оверквотинг удален]
>>>echo "test2"
>>>[root@null ~]# ./script.sh
>>>test1
>>>test2
>>
>>Cделал тоже самое, при запуске пишет:
>>./test.sh: Command not found.
> Такой косяк бывает если после #!/bin/sh стоит перевод строки в стиле Windows:
> \r\n
> Если открыть файл редактором типа vi, то все сразу станет видноСпасибо, такого не знал. Помогло!
>cd: can't cd to /usr/local/видимо прав не хватает
>>cd: can't cd to /usr/local/
>
>видимо прав не хватаетПрава делаю chmod 777 test.sh, из под рута.
Путь указан правильно - /bin/sh
Если поменять /bin/sh на /bin/csh - тоже самое.
Полтергейст :((
>>>cd: can't cd to /usr/local/
>>
>>видимо прав не хватает
>
>Права делаю chmod 777 test.sh, из под рута.
>Путь указан правильно - /bin/sh
>Если поменять /bin/sh на /bin/csh - тоже самое.
>Полтергейст :((покажите
ls -la test.sh
cat test.sh
>покажите
>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"запускаю скрипт, опять же, из под рута.
>>>cd: can't cd to /usr/local/
>>
>>видимо прав не хватает
>
>Права делаю chmod 777 test.sh, из под рута.
>Путь указан правильно - /bin/sh
>Если поменять /bin/sh на /bin/csh - тоже самое.
>Полтергейст :((
Прав может не хватать пользователю _из под которого_ запускается скрипт - не может сделать cd в директорию
>
>Прав может не хватать пользователю _из под которого_ запускается скрипт - не
>может сделать cd в директориюЕсть еще мысли на предмет где порыться/подкрутить?
Система только что поставлена с нуля, если это имеет значение. Единственное, все это делается через ssh, но, как я понимаю, значения это иметь не должно в данной ситуации.
>>
>>Прав может не хватать пользователю _из под которого_ запускается скрипт - не
>>может сделать cd в директорию
>
>Есть еще мысли на предмет где порыться/подкрутить?
>Система только что поставлена с нуля, если это имеет значение. Единственное, все
>это делается через ssh, но, как я понимаю, значения это иметь
>не должно в данной ситуации.Попробуйте не через скрипт:
[root@null ~]# csh
% echo "test"; cd /usr/local/; echo "test2"или сам скрипт:
[root@null ~]# cat script.sh
echo "test1"; cd /usr/local/; echo "test2"странно всё конечно :/
>>>
>>>Прав может не хватать пользователю _из под которого_ запускается скрипт - не
>>>может сделать 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'а/ов и написания на нем/них скриптов.
>ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на
>нем/них скриптов.А чуть чуть поподробнее можно, или болталогией будем заниматься?
>>ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на
>>нем/них скриптов.
>
>А чуть чуть поподробнее можно, или болталогией будем заниматься?вы перепутали свои постинги с моими, конкретно...
Ради бога - любая книга по Unix командам, работа в среде, использование shell,
настройка среды и написание скриптов
Тут же в документации на opennet.ru - LUG (Linux Users Guide), описание sh, bash
и программирование на них.
Излагать здесь целую книгу по основам работы в Unix-like OS никто не собирается,
изучайте и все получится.
>>>ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на
>>>нем/них скриптов.
>>
>>А чуть чуть поподробнее можно, или болталогией будем заниматься?
>
>вы перепутали свои постинги с моими, конкретно...
ой ли? :)
>Ради бога - любая книга по Unix командам, работа в среде, использование
>shell,
>настройка среды и написание скриптов
> Тут же в документации на opennet.ru - LUG (Linux Users Guide),
>описание sh, bash
>и программирование на них.
> Излагать здесь целую книгу по основам работы в Unix-like OS никто
>не собирается,
>изучайте и все получится.
Уважаемый, ну в самом деле, я ведь задал всего лишь навсего один простой вопрос, привел всего три! строчки кода. Можно все-таки дать определяющий ответ по сабжу, или ссылкой кинуть, где бы ясно описывалась суть того, что я не правильно делаю? Может прекратите заниматься пустословием наконец? (без обид) Уверяю Вас, прочту всю информацию которую Вы (надеюсь) мне все таки соизволите указать в плане определяющей. Я искал, я пытался найти ответ на этот вопрос, но видимо очень плохо пытался, и поэтому мы являемся с вами участниками данной дискуссии. Linux Users Guide? Замечательно! Пойду изучать. Но неужели ответ на мой вопрос находится на первой же странице данного мануала? :) Будьте так любезны сэкономьте немного моего времени и Вам вернется сторицей. На изучение всей информации относящейся к shell'ам, как к таковым, я думаю, уйдет не один день. Поймите, ответ на мой вопрос мне нужен сейчас. Можете вы помочь??
>Уважаемый, ну в самом деле, я ведь задал всего лишь навсего один
>простой вопрос, привел всего три! строчки кода. Можно все-таки дать определяющий
>ответ по сабжу, или ссылкой кинуть, где бы ясно описывалась суть
>того, что я не правильно делаю? Может прекратите заниматься пустословием наконец?
>(без обид) Уверяю Вас, прочту всю информацию которую Вы (надеюсь) мне
>все таки соизволите указать в плане определяющей. Я искал, я пытался
>найти ответ на этот вопрос, но видимо очень плохо пытался, и
>поэтому мы являемся с вами участниками данной дискуссии. Linux Users Guide?
>Замечательно! Пойду изучать. Но неужели ответ на мой вопрос находится на
>первой же странице данного мануала? :) Будьте так любезны сэкономьте немного
>моего времени и Вам вернется сторицей. На изучение всей информации относящейся
>к shell'ам, как к таковым, я думаю, уйдет не один день.
>Поймите, ответ на мой вопрос мне нужен сейчас. Можете вы помочь??
>Приведите вывод следующего скрипта:
#!/bin/sh
pwd
cd /usr/local
pwd
>Приведите вывод следующего скрипта:
>
>#!/bin/sh
>pwd
>cd /usr/local
>pwd./test.sh
: Command not found.Если просто в консоли набрать pwd, то показывает текущий каталог.
>>>>ничего странного - отсутствие элементарных знаний, знания используемого/ых SHELL'а/ов и написания на
>>>>нем/них скриптов.
>>>
>>>А чуть чуть поподробнее можно, или болталогией будем заниматься?
>>
>>вы перепутали свои постинги с моими, конкретно...
>ой ли? :)
>>Ради бога - любая книга по Unix командам, работа в среде, использование
>>shell,
>>настройка среды и написание скриптов
>> Тут же в документации на opennet.ru - LUG (Linux Users Guide),
>>описание sh, bash
>>и программирование на них.
>> Излагать здесь целую книгу по основам работы в Unix-like OS никто
>>не собирается,
>>изучайте и все получится.
>Уважаемый, ну в самом деле, я ведь задал всего лишь навсего один
>простой вопрос, привел всего три! строчки кода. Можно все-таки дать определяющий
>ответ по сабжу, или ссылкой кинуть, где бы ясно описывалась суть
>того, что я не правильно делаю? Может прекратите заниматься пустословием наконец?
>(без обид) Уверяю Вас, прочту всю информацию которую Вы (надеюсь) мне
>все таки соизволите указать в плане определяющей. Я искал, я пытался
>найти ответ на этот вопрос, но видимо очень плохо пытался, инадо изучать предмет вместо поиска латок для отрывочных и поверхностных знаний,
точнее вовсе отсутствующих знаний>поэтому мы являемся с вами участниками данной дискуссии. Linux Users Guide?
>Замечательно! Пойду изучать. Но неужели ответ на мой вопрос находится на
>первой же странице данного мануала? :) Будьте так любезны сэкономьте немного
>моего времени и Вам вернется сторицей. На изучение всей информации относящейся
>к shell'ам, как к таковым, я думаю, уйдет не один день.shell - это основы работы в среде Unix, у вас они отсутствуют напрочь, далее
идет простой подход - пусть дураки работают, а я хочу вылезти на чужом горбу -
это про экономию времени и пустословие...Если бы вы откровенно попросили бы НАПИСАТЬ за вас скрипт - это было бы чесно,
мб кто и помог, разницу улавливаете? Вместо этого вы занялись словесностью, что
и получили в ответ, не надо других держать за дураков.>Поймите, ответ на мой вопрос мне нужен сейчас. Можете вы помочь??
>а мне сейчас нужен новый автомобиль и четырехкомнатная квартира - поможете?
>
>а мне сейчас нужен новый автомобиль и четырехкомнатная квартира - поможете?
Пилите Шура, пилите (С)
Я понял лишь одно, в данном вопросе вы разбираетесь не лучше меня. Мне жаль потраченного на вас времени...
>>
>>а мне сейчас нужен новый автомобиль и четырехкомнатная квартира - поможете?
>Пилите Шура, пилите (С)
>Я понял лишь одно, в данном вопросе вы разбираетесь не лучше меня.
>Мне жаль потраченного на вас времени...ЧТД
>Я понял лишь одно, в данном вопросе вы разбираетесь не лучше меня.
>Мне жаль потраченного на вас времени...Прежде чем говорить такие вещи, поищите по форуму посты г-на lavr и Ваше мнение о его знаниях кардинально изменится.
>Прежде чем говорить такие вещи, поищите по форуму посты г-на lavr и
>Ваше мнение о его знаниях кардинально изменится.
Мне ничуть не интересны посты, как вы выразились, гражданина lavr.
>
>>Прежде чем говорить такие вещи, поищите по форуму посты г-на lavr и
>>Ваше мнение о его знаниях кардинально изменится.
>Мне ничуть не интересны посты, как вы выразились, гражданина lavr.игнор.
>>
>>а мне сейчас нужен новый автомобиль и четырехкомнатная квартира - поможете?
>Пилите Шура, пилите (С)
>Я понял лишь одно, в данном вопросе вы разбираетесь не лучше меня.
>Мне жаль потраченного на вас времени...
Без комментариев!
>Попробуйте не через скрипт:
>
>[root@null ~]# csh
>% echo "test"; cd /usr/local/; echo "test2"Пишет: %: Too many arguments.
>>Попробуйте не через скрипт:
>>
>>[root@null ~]# csh
>>% echo "test"; cd /usr/local/; echo "test2"
>
>Пишет: %: Too many arguments.Это пипец! Jimbo, без обид, но Вы бы вместо того, чтобы флудить в форуме, почитали бы хоть что-нибудь про shell. Статей и книг полно, даже здесь на opennet. Поиск рулит!
>Это пипец! Jimbo, без обид, но Вы бы вместо того, чтобы флудить
>в форуме, почитали бы хоть что-нибудь про shell. Статей и книг
>полно, даже здесь на opennet. Поиск рулит!В том то все и дело, что в доках/манах скрипт так и написан, как я писал изначально, но вылазят эти грабли. Если вы знаете источник способный явно указать, что я делю не так, будьте так любезны, укажите мне его пожалуйста, буду Вам весьма признателен и благодарен.
Собственное перелопачивание яндексоподобных гуру, мне, ни коим образом не помогло, в виду отсутствия похожих проблем.
>Единственное, все это делается через ssh, но, как я понимаю, значения это иметь не должно в данной ситуации.... иногда очень даже имеет.
>День добрый.
>Есть простейший скрипт с именем 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"...