LINUX.ORG.RU

передача строкового параметра скрипту

 , ,


0

1

Доброго времени суток. Такая ситуация, написал скрипт, который в текущей дир. позволяет искать заданную строку($1) и сохранять где нашел и номера строк в файл(имя файла $2) со строками все прекрасно работает

#!/bin/bash
#$1 последовательсность для поиска
#$2 имя файла результатов

export files=$(ls ./);
files=$(echo -e "$files" | sed "s/num4.sh//");
touch "$2.txt";

for name in $files
do
echo "File name: "$name >> "./$2.txt"
step=$(grep -n -s -i -o "$1" "$name")
# номер строки.под ошибок.игн регистр.поиск только совпавшегокуска
	if [[ -n $step ]]
	then
	step=$(echo "$step" | sed "s%$1%%gi")
	step=$(echo "$step" | sed -E "s%:%;%g" )
#регулярка
	echo "Pattern was finding in line(s) "$step >> "./$2.txt"
	else
	echo "Pattern was not finding" >> "./$2.txt"
	fi
done

echo "Done! U can see results in same sirectory in file: $2.txt"

возникает проблема с выражениями типа: («^

host1@host1-VB:~/Рабочий стол/4.4$ ./num4.sh (*^ result
bash: синтаксическая ошибка рядом с неожиданным маркером «*^»
Добавил кавычки-заработало
host1@host1-VB:~/Рабочий стол/4.4$ ./num4.sh "(*^" result
Done! U can see results in same sirectory in file: result.txt
возникла другая проблема с выражениями типа: 78#@!~?
host1@host1-VB:~/Рабочий стол/4.4$ ./num4.sh "78#@!~?" result
bash: !~?: event not found
Можно как-то отключить в передаче параметров все выражения и воспринимать их только как текст? Поскольку задание говорит, что поиск должен быть абсолютно любой последовательности символов нужно как-то это решить..

Спасибо!



Последнее исправление: dmanev (всего исправлений: 1)

Можно как-то отключить в передаче параметров все выражения и воспринимать их только как текст?

Можно. В одиночные кавычки заключите.

vodz ★★★★★
()

скрипт, который в текущей дир. позволяет искать заданную строку($1) и сохранять где нашел и номера строк в файл

grep -n $line * > $file

На каталогах будет ругаться так же как и твой говно^W прекрасный скрипт.

проблема с выражениями типа

Используй одинарные кавычки. Но в целом кавычки и их экранирование при передаче параметров в баше - это ацкий ад.

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