DIR=from
NET=192.168.1
HOST=1
cat ${DIR}-${NET}.${HOST} | awk '
BEGIN { d=0 }
....
{ system("rm "'${DIR}-{NET}.${HOST}') }
}'
вот такой скриптик, но команда rm не выполняется, потому как...
dir передается как пустой
net - меняется на "192.1680.1"
Почему меняются переменные?
После выхода из awk переменные опять принимают нормальное значение...
ОС FreeBSD4...
Заранее спасибо за ответ!
>DIR=from
>NET=192.168.1
>HOST=1
>cat ${DIR}-${NET}.${HOST} | awk '
> BEGIN { d=0 }
>....
> { system("rm "'${DIR}-{NET}.${HOST}') }
> }'
>вот такой скриптик, но команда rm не выполняется, потому как...
>dir передается как пустой
>net - меняется на "192.1680.1"
>Почему меняются переменные?
>После выхода из awk переменные опять принимают нормальное значение...
>ОС FreeBSD4...
>Заранее спасибо за ответ!
DIR=from
NET=192.168.1
HOST=1
cat ${DIR}-${NET}.${HOST} | awk '
BEGIN { d=0 }
....
{ system("rm "'"${DIR}-{NET}.${HOST}"'" ) }
}'
> { system("rm "'"${DIR}-{NET}.${HOST}"'" ) }
Спасиб помогло!
Только я не понял почему надо ` в кавычки заключать?
>> { system("rm "'"${DIR}-{NET}.${HOST}"'" ) }
>Спасиб помогло!
>Только я не понял почему надо ` в кавычки заключать?
В итоге наиболее безопасно получить е>> { system("rm "'"${DIR}-{NET}.${HOST}"'" ) }
>Спасиб помогло!
>Только я не понял почему надо ` в кавычки заключать?В итоге наиболее безопасно получить получить в shell строку в двойных кавычках, на случай если после подстановки результирующая строка содержит пробелы
system( "rm \"${BLA_BLA_BLA}\"" )
Как мы знаем подстановки не будет внутри одиночных кавычек, значит надо дать шеллу возможность это сделать путем выдирания из под них и склеивания
system( "rm \"'"${BLA_BLA_BLA}"'\"" )
Успехов
--- sasКстати я забыл эскейпить внутренние двойные кавычки или это cgi?
:)