Элементарный вариант
Код: Выделить всё
if [ $(echo $string | grep -i $substring >/dev/null) ]; then ...
Модераторы: /dev/random, Модераторы разделов
Код: Выделить всё
if [ $(echo $string | grep -i $substring >/dev/null) ]; then ...
...
$ STRING="hs8e3hedndi4557"; SUBSTRING="hedn"; echo "$STRING" | grep -iq "$SUBSTRING" && echo "Substring found" || echo "Substring not found"
Substring found
$ STRING="hs8e3hedndi4557"; SUBSTRING="bla"; echo "$STRING" | grep -iq "$SUBSTRING" && echo "Substring found" || echo "Substring not found"
Substring not found
Код: Выделить всё
if [ test $(echo $string | grep -i $substring >/dev/null) ]; then ...
Код: Выделить всё
if [ test $(echo $string | grep -iq $substring) ]; then ...
Код: Выделить всё
if echo "$string" | grep -i "$substring" >/dev/null; then
Код: Выделить всё
if [ "$(echo $string | grep -io $substring)" = "$substring" ]; then ...
Потому что if проверяет статус завершения команды. Всё, ничего больше. «[» — это не синтаксическая конструкция bash, это команда такая, синоним test (почти, ибо «[» допускает «]» в качестве последнего аргумента, хотя и не UPD: обязательно требует).
Shell
$ which '['
/usr/bin/
Т.е. test test? (:allez писал(а): ↑12.06.2010 17:34P. S. Если же использовать ваш вариант, то следует воспользоваться командой "test":
Код: Выделить всё
if [ test ... ]; then ...
Код: Выделить всё
#!/bin/bash
if [ $(expr length $1) -le 2 ]
then exit 1
fi
dfiles="/home/$USER/.local/share/applications/*.desktop /usr/share/applications/*.desktop"
for i in $dfiles
do
for file in $i
do
echo $file
name="$(awk -F "=" '/Exec/ {print $2}' $file)"
if echo "$name" | grep -i $1 >/dev/null
then exec $(echo $name | cut -d ' ' -f1)
fi
done
done
exit 0
В $i уже попадают отдельные файлы и второй for не нужен.radial писал(а): ↑12.06.2010 22:52Код: Выделить всё
dfiles="/home/$USER/.local/share/applications/*.desktop /usr/share/applications/*.desktop" for i in $dfiles do for file in $i
Не? :)name="$(awk -F "=" '/Exec/ {print $2}' $file)"
Счастливчик :) Мне что-то не очень понятно. В смысле, на пальцах, его полезная функция как-то не вырисовывается.
watashiwa_daredeska писал(а): ↑17.06.2010 21:36СчастливчикМне что-то не очень понятно. В смысле, на пальцах, его полезная функция как-то не вырисовывается.