LinuxForum.Fans
Тема

Команды терминала в файле

Автор: Volodya 6 сообщений 1042 просмотров
#327933

Вопрос: как записать команду, выполняемую в терминале в файл, чтоб работала одним кликом по файлу.
К примеру надо запустить в терминале две команды:

text
chmod -R 777 /home/user/temp
chmod -R 666 /home/user/papka

А как эти команды перевести в файл, чтоб одним кликаньем по файлу выполнялись эти команды, что должно быть записано в файле? Какого расширения он должен быть?

#327935
"Volodya⇓" написал:
А как эти команды перевести в файл, чтоб одним кликаньем по файлу выполнялись эти команды, что должно быть записано в файле?

Вам нужно написать shell-скрипт. Чтобы скрипт стал исполняемым, нужно:
1. В начале файла написать "sha-bang" с указанием интерпретатора или командной оболочки, например

text

#!/bin/bash

2. Дать файлу права на исполнение командой chmod

А подробнее - здесь.

ЗЫ. В Linux расширение не играет особой роли.

#327971

Спасибо за ссылку, разобрался теперь.

#327973

Volodya, cd "`dirname "$(readlink -f "$0")"`" добавь в файл, сделай chmod +x твой_ скрипт и будем по двойному клику мыши файл со скриптом запускаться.

text
#!/bin/sh

cd "`dirname "$(readlink -f "$0")"`" cd ~/ ls echo "Hello World"

#327974

Спасибо, понял уже, я просто команду неправильно написал, вот она и неработала.
Кстати, именно на таком примере я и затормозил, ведь даже твоя команда работает только в терминале, ты сам попробуй по ней мышкой кликнуть.
Все ок, дальше сам буду копать.

#327976

Ну так вместо ls и echo "Hello World" само собой надо свои команды подставить :D А эти то да, для терминала предназначены, а не для графики.

А так, вот пример навскидку одного из скриптов, который я запускаю двойным кликом мыши.

text
#!/bin/sh

cd "`dirname "$(readlink -f "$0")"`"

cd $PWD/Data

DIR="$HOME/.blood" if [ ! -d "$DIR" ]; then echo " Directory $DIR does not exist " mkdir $DIR echo " Directory $DIR created " fi

BTC="$HOME/.blood/btc.cfg" if [ ! -e "$BTC" ]; then echo " Config file $BTC does not exist " cp ./btc.cfg $DIR echo " Config file btc.cfg copied to game folder " fi

BTCS="$HOME/.blood/btc_settings.cfg" if [ ! -e "$BTCS" ]; then echo " Config file $BTCS does not exist " cp ./btc_settings.cfg $DIR echo " Config file btc_settings.cfg copied to game folder " fi

exec $PWD/game -jBloodTC -gBloodTC/BloodTC.grp -xBloodTC/eduke.con "$@"

exit 1

Войдите или зарегистрируйтесь, чтобы ответить.