>Например да кажем че програмта се казва neshtosi
>
>$ ./neshtosi x is 5 plus 6 plus 7 plus 8
>
>да изведе на екрана
>
>x is 5 + 6 + 7 + 8
Не разбирам защо е сложено expr ``. Иначе програмата може да бъде например:
---------------------------------------
#!/bin/sh
echo $* | sed 's/plus/+/g'
exit 0
--------------------------------------
Може би има и вариант с expr; просто може би не съм достатъчно добър да мога да го напиша.
Ето и вариант на Perl (може да не е много елегантен, но работи):
--------------------------------------
#!/usr/bin/perl -w
map { $_ =~ s/plus/+/; print "$_ ";} @ARGV;
print "\n";
-------------------------------------
EDIT: видях защо е поставено expr `` - за да сметне израза след заместването на 'plus' с '+' (
http://en.wikibooks.org/wiki/Shell_Programming#expr_command ). Тогава shell-скриптът ще бъде нещо такова:
---------------------------------------
#!/bin/sh
expr `echo $* | sed 's/plus/+/g'`
exit 0
--------------------------------------
Но ще трябва да го извикваш с нещо такова (при мен скриптът се казва zz.sh):
cdiem@cdiemst:~$ ./zz.sh 5 plus 7 plus 6
18
cdiem@cdiemst:~$
В първия вариант по-горе (без expr):
cdiem@cdiemst:~$ ./zz.sh 5 plus 7 plus 6
5 + 7 + 6
cdiem@cdiemst:~$