Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Смена каталога из скрипта в sh/bash

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

SergeyKulikov



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Для tcsh в /etc/csh.cshrc добавил строчку: alias dc        "cd \!:1 && ls -FaG && pwd"
 
В оболочке tcsh запускаю комманду: dc /etc
Результат выполнения: сначала переходит в папку /etc, потом делает распечатку и в конце выводит pwd. После завершения скрипта остаёмся в папке в которую перешли. Работает правильно
 
Для bash в /etc/profile добавил строчку: alias dc="cd $1 && ls -FaG && pwd"
 
В оболочке bash запускаю команду dc /etc
Результат выполнения: сначала переходит в папку ~/, потом делает распечатку и в конце выводит pwd. После завершения скрипта остаёмся в папке с которой запускали команду. Работает неправильно
 
 
 
Забил на эти алиасы для bash-а и создал файл dc, сделал его исполняемым. Прописал в файл:
#!/bin/sh
cd $1 && ls -FaG && pwd

В оболочке bash запускаю запускаю файл ./dc /etc
Результат выполнения: сначала переходит в папку /etc, потом делает распечатку и в конце выводит pwd. После завершения скрипта остаёмся в папке с которой запускали команду. Работает неправильно
 
cd срабатывает только на время выполнения bash скрипта.
 
 
 
Как реализовать, то, что я хочу?
Я часто пишу cd /путь, потом распечатываю ls -FaG и после этого иногда забываю, где нахожусь и делаю pwd
Как можно сделать, чтобы работало всё это по одной команде  dc /путь ?
 

Всего записей: 24 | Зарегистр. 09-02-2011 | Отправлено: 12:31 24-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyKulikov
тема про sh/bash и т.п.
 
Если через скрипт делать то всё правильно. только скрипт надо вызывать не просто, а так: . ~/dc /etc или source ~/dc /etc.
Как это сделать через alias я не знаю.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 13:04 24-03-2011
SergeyKulikov



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
>> Если через скрипт делать то всё правильно
Неправильно.
 
 
 
Добавлено:
Могли бы Вы показать скриншот Вашего экрана? Я хочу убедиться, что у Вас это сработало. Уверен на 99%, что не сработало, так как надо

Всего записей: 24 | Зарегистр. 09-02-2011 | Отправлено: 13:09 24-03-2011 | Исправлено: SergeyKulikov, 13:14 24-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyKulikov

1 - Завалите в указанную тему пожалуйста!
2 - прочитайте внимательно мой пост!
Цитата:
скрипт надо вызывать не просто, а так: . ~/dc /etc или source ~/dc /etc
(проверял - работает)

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 13:14 24-03-2011 | Исправлено: Alukardd, 13:15 24-03-2011
SergeyKulikov



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
>> 1 - Завалите в указанную тему пожалуйста!
Создать в теме http://forum.ru-board.com/topic.cgi?forum=65&topic=2790#1 такое же сообщение? Или что именно сделать?
 
Действительно работает! Впервые слышу про то, что такое точка перед путём и про source
 
Спасибо большое!

Всего записей: 24 | Зарегистр. 09-02-2011 | Отправлено: 13:17 24-03-2011 | Исправлено: SergeyKulikov, 13:26 24-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да обычно в тему уходят после 1-ой просьбы с дубликатом вопроса. Если ответ еще не получили то переместитесь в указанную тему.
 
Вот мой листинг.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 13:27 24-03-2011
SergeyKulikov



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alukardd, спасибо большое! Извините, пожалуйста, что нарушил правила форума. Я свой вопрос благодаря Вам решил и тему можно удалять

Всего записей: 24 | Зарегистр. 09-02-2011 | Отправлено: 13:28 24-03-2011
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
cd срабатывает только на время выполнения bash скрипта.

 

Код:
 
. ./script
 


----------
Вопросы в личке останутся без ответа

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:57 24-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
вы слегка запоздали)))
в первом же ответе это сказано...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 22:59 24-03-2011
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Действительно, извиняюсь, не заметил.


----------
Вопросы в личке останутся без ответа

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:02 24-03-2011
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » Смена каталога из скрипта в sh/bash


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru