LinuxForum.Fans
Тема

как объединить несколько маленьких скриптов в один?

Автор: natalia_nikiforowa 5 сообщений 3267 просмотров
#362104

как объединить несколько маленьких скриптов в один? на bash с помощью оператора case, используя функции

Показать

1)

Показать
text
#!/bin/bash
echo "Количество строк в файле file_x"
wc -l file_x.txt
echo "Количество слов в файле file_x"
wc -w file_x.txt
echo "-------------------"
cat /dev/null > file_y.txt
awk '{print $NF}' file_x.txt » file_y.txt
cat file_x.txt > file_z.txt
cat /dev/null > file_x.txt
awk 'NF--' file_z.txt » file_x.txt
rm file_z.txt
echo "Количество строк в файле file_y"
wc -l file_y.txt
echo "Количество слов в файле file_y"
wc -w file_y.txt

2)

text
#!/bin/bash
echo "Имя файла $1"
echo "Номер строки $2"
sed -n $2p $1 »123.txt
sed -i $2d $1
cat 123.txt »$1
rm 123.txt

3)

text
#!/bin/bash
r=$(echo "`date | awk '{print $4}'`")
awk -v p="$USER","$r" '{print p,t,$0}' $1 »123.txt
cat 123.txt > $1
rm 123.txt

4)

text
#!/bin/bash
echo "------------------"
awk 'NR%2==0 {print $0; print p}{p=$0}' $1 »123.txt
cat 123.txt > $1
rm 123.txt

5)

text
grep "\<$2\>" "$1" | wc -l
exit 0

6)
a)

text
#!/bin/bash
echo "----------------"
awk '{print NR,$0}' $1 »123.txt
cat 123.txt > $1
rm 123.txt

b)

text
#!/bin/bash
echo "---------------"
awk '{if (/qwe/) print (NR,$0); else print ($0)}' $1 »123.txt
cat 123.txt > $1
rm 123.txt

7)

text
echo "Номера повторяющихся строк"
sort -n $1 | uniq -d | while read line;
do
cat -n $1 | grep $line
done | sort -n | awk '{print $1}'
echo -e "\nОтсортированный файл с удаленными повторами строк"
sort -u $1

9)

text
#!/bin/bash
echo "Vvedite komandu:
1 - удалить пустые строки
2 - удалить строки, содержащие ключевое слово "
read x y z
case $x in
1) sed '/^$/d' < $y ;;
2) sed "/^$z/d" < $y ;;
*) echo "neizvestno" ;;
esac

10)

text
#!/bin/bash
cat $1 | tr [:lower:] [:upper:] ;

скрипты рабочие. пробовали по типу:

text

#!/bin/bash
echo "+-------------------------------------------------------+";
echo "|Выберите желаемое действие:|";
echo "+-------------------------------------------------------+";
echo "1: Выполнить скрипт 1
echo "2: Выполнить скрипт 2";
echo "3: Выполнить скрипт 3";
echo "4: Выполнить скрипт 4";
echo "5: Выполнить скрипт 5";
echo "6: Выполнить скрипт 6";
echo "7: Выполнить скрипт 7";
echo "8: Выполнить скрипт 8";
echo "9: Выполнить скрипт 9";
echo "10: Выполнить скрипт 10";
echo "0: Выход.";
read y;

case "$y" in 1 ) /home/nat/skript1/script1.sh;; 2 ) /home/nat/skript2/script2.sh;; 3 ) /home/nat/skript3/script3.sh;; 4 ) /home/nat/skript4/script4.sh;; 5 ) /home/nat/skript5/script5.sh;; 6 ) /home/nat/skript6/script6.sh;; 7 ) /home/nat/skript7/script7.sh;; 8 ) /home/nat/skript8/script8.sh;; 9 ) /home/nat/skript9/script9.sh;; 10 ) /home/nat/skript10/script10.sh;; 0 ) exit;; * ) echo "Введите цифры от 1 до 6!"; ./index.sh;; esac

че то не выходит.

Пожалуйста, испоьзуйте теги BBCode при оформлении сообщений. yars.

#362107

natalia.nikiforowa, используйте, пожалуйста, бб-коды для оформления сообщений.
Сейчас глаза сломать можно. Добавьте бб-код [[span]code][/co[/span]de] к скриптам.

#362194
"natalia.nikiforowa" написал:
че то не выходит.

а что тогда выходит? с виду всё правильно, хоть и противненько в стилистическом плане.... если опечатки в путях нет...

#362204

может надо в блоке case esac добасить
sh?

1 ) sh /home/nat/skript1/script1.sh;;

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