LinuxForum.Fans
Тема

Пишем скрипты в Linux (обучение на примерах)

Автор: forkostya 29 сообщений 153347 просмотров
#257431

Большое спасибо. И ещё тогда ворос, скрипт не запускаеться, пишет Permission denied. Хотя я нахожусь под рутом. Или в скрипте это нужно где-то указать?

#257434

[console=root]chmod ug+x file.sh
[root@linuxforum.ru ~]#./file.sh[/console]

#257435

Если выполните "ls -l", увидите, что права на исполнение (x) нет. Нужно выдать:

text
# chmod +x имя_скрипта

Кроме того, у рута текущий каталог отсутствует в $PATH, поэтому, если запускать из текущего каталога, то не забыть указание пути (в примере ниже -- относительного):

text
./имя_скрипта

Или добавить в один из каталогов, перечисленных в $PATH.

#257439

Можно просто:

text
# bash имя_скрипта
#257447

Работает :) Всмем спасбо *BRAVO* *BRAVO*

#275748

Тоже всё получилось, заработало на УРА!

#282494

кто подскажет как на основе этого сделать выбор и выполнения скрипта в зависимости от того что выберешь...

forkostya написал:
15) Оператор выбора - Case
#!/bin/bash
echo "What is your preferred programming / scripting language"
echo "1) bash"
echo "2) perl"
echo "3) phyton"
echo "4) c++"
echo "5) I do not know !"
read case;
# простая структура case-выбора
# обратите внимание, что в данном примере $case - всего лишь переменная
# и не обязана так называться. Это лишь пример
case $case in
1) echo "You selected bash";;
2) echo "You selected perl";;
3) echo "You selected phyton";;
4) echo "You selected c++";;
5) exit
esac
text
$ ./case.sh
What is your preferred programming / scripting language
1) bash
2) perl
3) phyton
4) c++
5) I do not know !
4
You selected c++

Всём спасибо! сам разобрался, остановился на скрипте который выше...

Up: как сделать чтобы водной из этих функций можно было скажем путь указат
пример:

text
#!/bin/bash
echo "other"
echo "1) Copy as.."
echo "2) Auto copy to profile"
echo "0) Closed"
read case;
case $case in
    1) cp test.txt <указать путь самому> echo "Please enter path:" ;;
    2) cp test.txt /home/user ;;
    0) exit
esac
text
$ ./test.sh
other
1) Copy as.
2) Auto copy to profile
0) Closed
1
Please enter path:
/var/www
#282530
"Shark-kun" написал:
case $case in

Использование в качестве имени переменной названия оператора оболочки — плохая привычка.

"Shark-kun" написал:
Up: как сделать чтобы водной из этих функций можно было скажем путь указат

Использовать read внутри одного из пунктов выбора конструкции case, чтобы получить данные о пути от пользователя.

#282566

можно на примере, пока не понимаю как его использовать?!

Up: Спасибо за подсказку, разобрался...
Рабочий пример:

text
#!/bin/bash
echo "Install BF2CCD"
echo "1) Install 'Note: installing mono required to run BF2CCD!'"
echo "0) Cancel"
read case;
case $case in
    1) echo "Please enter path install BF2CCD:"
    read key
    cp BDSoft.BF2.Server.dll bf2ccd.exe $key ;;
    0) exit
esac
Войдите или зарегистрируйтесь, чтобы ответить.