Отправляет email-рассылки с помощью сервиса Sendsay

bash скрипты

Привет всем!

Есть желание сделать следующее:
после команы cdrom должно выполняться следующее:
$mount /dev/cdrom
$cd /mnt cdrom
$ls
Для этого я кладу в $home/bin файл cdrom вышеуказанного содержания и даю
ему разрешение на исполнение.

Список файлов на CD выводится, но я остаюсь в той же директории, что и
был до выполнения скрипта. Как сделать так, чтобы директория после
выполнения стала той, что указана в скрипте?

Заранее благодарю.

Ответить   Thu, 17 Jun 2004 15:01:31 +0400 (#172290)

 

Ответы:

Win32)

On Thu, 17 Jun 2004 15:01:31 +0400
Лобанов Валерий <valery_loban***@m*****.ru> wrote:

Может стоит попробовать алиас? Например такой:

alias cdrom="mount /mnt/cdrom > /dev/null; ls /mnt/cdrom"

Ответить   Alexander Artemenko Thu, 17 Jun 2004 17:38:48 +0400 (#172312)

 

Лобанов Валерий пишет:

Из скрипта никак. Вот если оформить это как функцию и добавить,
например, в /etc/bashrc тогда да. Или можно через алиас:

alias cdrom='. /usr/bin/cdrom'

но опять же добавить эту строку в /etc/bashrc
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8472; Возраст листа: 327; Участников: 1178
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/172327



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "Yuri N. Glibovetz" Thu, 17 Jun 2004 16:53:31 +0300 (#172327)

 

В сообщении от 17.06.2004 17:53 Yuri N. Glibovetz пишет:

Я оформил это как функцию в $home/bashrc
cdrom()
{
commands
}

Но с терминале это не воспринимается, пишет, что не может найти такую
комманду.

Может функцию надо оформлять через алиас. Если да, то как это сделать?

alias alias_name=func_name()
alias alias_name="func_name()"
alias alias_name=func_name
alias alias_name="func_name"

-ничто из этого не работает.

А чем это отличается от просто того, чтобы положить скрипт в /bin или
любую другую директорию, указанную в $PATH ?

Ответить   Fri, 18 Jun 2004 00:17:30 +0400 (#172583)

 

Hello Лобанов,

Thursday, June 17, 2004, 11:17:30 PM, you wrote:

Точнее $HOME/.bashrc

После этого можно выполнить
. $HOME/.bashrc

Ответить   vasile Fri, 18 Jun 2004 07:39:26 +0300 (#172651)

 

vasile wrote:

Зачем? Bash сам это сделает. А если исользуется другая оболочка, то
нужно прописать в ее rc-файле.

Ответить   Max Vasin Fri, 18 Jun 2004 16:48:57 +0400 (#172873)

 

On Fri, 18 Jun 2004, Лобанов Валерий wrote:

А инклудить кто будет?

Если Вы это запишите в ~/.bashrc, то она будет доступна при следующем
логине, или если Вы явно заинклудите его:

$ . ~/.bashrc

То же самое, только смысла нет.

Ответить   Fri, 18 Jun 2004 14:54:49 +0400 (MSD) (#172844)

 

Лобанов Валерий пишет:

$HOME/.bashrc (обратите внимание на точку)

Для выполнения скрипта запускается отдельный процесс. Изменение текущего
каталога в дочернем процессе не влияет на текущий каталог родительского
процесса.

P.S. Есть еще одна тонкость. В некоторых системах /etc/bashrc и
$HOME/.bashrc для root не выполняются. Проверяйте все для обычного
пользователя.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8490; Возраст листа: 328; Участников: 572
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/172862



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать : mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "Yuri N. Glibovetz" Fri, 18 Jun 2004 15:06:45 +0300 (#172862)