я совсем только начинаю работать с текстовыми оболочками и иногда встречаются то двойные то одинарные кавычки и я не могу понять в чем отличие. подскажите кто-нибудь или скажите, где поискать инфу.
>я совсем только начинаю работать с текстовыми оболочками и иногда встречаются то
>двойные то одинарные кавычки и я не могу понять в чем
>отличие. подскажите кто-нибудь или скажите, где поискать инфу.Не с текстовыми оболочками, а с интерпретаторами командной строки.
Отличие в подстановке параметров. В двойных кавычках параметры подставляются, в одинарных - нет. В бектиках (`blabla`) закавыченное выполняется, результат подставляется.Читать, как всегда, надо man (|ba|z|tc)sh
Спасибо!
не сказать, чтобы там было все понятно, но тем не менее.
бектики - это, надо полагать, backquotes?
>бектики - это, надо полагать, backquotes?Да, они самые. Но современные стандарты предлагают более очевидный синтаксис вызова для подстановки:
VARIABLE=$( foo $bar )
эквивалентно
VARIABLE=`foo $bar`
УПД.И, чтобы два раза не вставать, напоминаю о существовании функции eval:
FNAME="/etc/fstab"
COMMAND1="cat"
COMMAND2="ls -l"
INDEX=1RESULT=$( eval \$COMMAND$INDEX $FNAME )
echo $RESULT
>VARIABLE=$( foo $bar )
>VARIABLE=`foo $bar`
>FNAME="/etc/fstab"
>COMMAND1="cat"
>COMMAND2="ls -l"
>INDEX=1
>RESULT=$( eval \$COMMAND$INDEX $FNAME )
>echo $RESULT:-)
Благодарю!
Я на секундочку представил, что мы с вами говорим на равных, и я всё это понимаю.
Исключительно приятная фантазия!