LINUX.ORG.RU

простейшие скрипты


0

0

Чтобы в скрипте открыть какой-либо файл с программой, что надо написать? cd .../файл, а потом скопировать в скрипт код программы? что-то не проходит...


Если я правильно понял суть задачи:

#!/bin/sh

file="/home/dmitry/downloads/08102009374.jpg"   # файл
program="/usr/bin/gwenview"                     # программа
`$program $file`&                               # запуск (& означает запуск в фоновом режиме)
echo "done"                                     # дальнейшие действия

mipt_student
()
Ответ на: комментарий от Holly
#!/bin/sh

text="Some text here"
file="/home/dmitry/file.txt"
program="/usr/bin/kwrite"
echo $text > $file
`$program $file`&
echo "done"
mipt_student
()

или что-то вроде

#!/bin/sh

a=`cat text.file`;
echo $a;

?

isden ★★★★★
()
Ответ на: комментарий от isden

Ну допустим, он у меня есть. Как записать его текст в скрипт, потом то, что он запускает и чтобы сценпарий оказался работоспособным...

Holly
() автор топика
Ответ на: комментарий от Holly

Также, просто записываешь его в переменную, а ее содержимое потом в скрипте обратно в файл. Но не проще ли изначально отдельно мэйкфайл хранить?

mipt_student
()
Ответ на: комментарий от Holly

>мне просто по условию
написать проект на <язык программирования> в shell скрипте?

ЗЫ: прочел тему, нифига не понял, лучше огласи исходное задание, которое тебе дали.

xydo ★★
()
Ответ на: комментарий от xydo

Чего-то у меня как всегда ничего не получилось... Исходное задание: надо реализовать сценарий с одним (обязательным) параметром, который определяет имя проекта. Сценарий создает каталог проекта с указанным именем(ну каталоги я вроде умею))) а в нем Makefile для сборки и каталог src, содержащий шаблон файла исходного кода на языке Си. Шаблон исходного кода должен представлять собой минимальный, но работоспособный код (программа типа hello world). Другими словами, должна быть возможность собрать и запустить сгенерированный код шаблона.

Holly
() автор топика
Ответ на: комментарий от Holly

мда. а чем ты занимался на парах?? учти две вещи: во-первых, я абсолютно не уверен, что делаю сейчас что-то хорошее, и искренне надеюсь, что ты из уважения к человеку, решившему тебе помочь, разберешься с каждой командой и приемом, которые я использую. во-вторых, я это все наклепал прямо тут в форме ответа и не тестировал. во всяком случае, если указать имя проекта с пробелом, то не сработает, но и предупреждения не выдаст.

#!/bin/bash

MAKEFILE='
project: main.o
        gcc main.o -o project

main.o: src/main.c
        gcc -c src/main.c -o main.o

clean:
        rm project main.o
'

MAINC='
#include <stdio.h>

int main() {
  puts ("hello, world!\n");
}
'

if [ $# -ne 1 ]
then
  echo "usage: $(basename $0) <projectname>"
  exit 1
fi

mkdir -p $1/src
echo "$MAINC" > $1/src/main.c
echo "$MAKEFILE" | sed -e "s/project/$1/g" > $1/Makefile

cd $1
make
./$1

поверь, без таких элементарных знаний никуда, ни программисту, ни админу, ни даже продвинутому пользователю. почитай google(bash-scripting-guide). и обещай, что если все-таки заработает, то ты тут выложишь улучшенную тобой версию, как минимум с комментариями к каждой строчке.

val-amart ★★★★★
()
Ответ на: комментарий от xydo

а ты большой оригинал, я посмотрю. сначала попросил объявить исходное задание, а потом предлагаешь решение, совершенно не учитывающее условия. решил блеснуть знанием? не получилось, я в курсе, что гцц умет читать свой стандартный ввод.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Большое спасибо... Я не часто выполняю обещания, но сейчас, наверно, могу... Получилось у меня как-то так...


#!/bin/sh

if [ $# -ne 1 ]
then
echo "неверный ввод параметра"
exit 1
fi

mkdir $1
chmod go-rwx $1
cd $1
mkdir src

MAKEFILE='
‘$1’: src/’$1’.o
gcc -g -O0 -o ‘$1’ src/’$1’.o

src/’$1’.o: src/’$1’.c
gcc -g -O0 -c src/’$1’.c
'

FILENAMEC='
#include <stdio.h>

int main()
{
/* Текущий год */
int year;

/* Запрашиваем с клавиатуры текущий год */
fprintf(stdout, "Введите который сейчас год: ");
fscanf(stdin, "%d", &year);

/* Выводим приветствие и пожелание на следующий год */
fprintf(stdout, "Hello, students!\nУдачи в %d году\n", year + 1);

return 0;
}
'
echo "$FILENAMEC" > src/main.c

echo "$MAKEFILE" > Makefile

make

exit

Вроде я так сегодня писала... Правда, всё равно не сдала...

Holly
() автор топика
Ответ на: комментарий от val-amart

фу, сколько НЕНАВИСТИ...
я как бы в курсе того, что мой ответ не очень здесь годится, так что не строй из себя великого умника!
мой ответ был скорее в духе just for information и направлен больше к ТС.

xydo ★★
()
Ответ на: комментарий от xydo

ты на лоре, детка =)
на самом деле, действительно выгляднло как попытка поумничать. извини, если задел. пис.

val-amart ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.