bash, code execution и аргументы
Казалось бы, при чем здесь php?
кстати, озвучь задачу, а то не понятно, что ты хочешь сделать
и самое главное работает
mkdir `echo "$1" | sed "s/\(.*\)\.\(.*\)$/\1/"`
вроде под этот таск есть готовая команда на шэле, я забыл ее имя, она все суффиксы выдирает после точки
а может и гоню, но просто я сам sed не знаю, так бы выкручивался
но все равно интересно, как сделать то, что я спросил?
дело в том, что я не знаю ни перла, ни седа, не специальной команды, которая обрежет строку до последней точки. Зато немного знаю пхп.
тойсть
echo "$1" | php -r "..."
а в php ее из STDIN считать
(не помню как это делается)
зато стопудняк будет работать
а эти все седы и авки никто не знает, походу всегда ботают и пишут
дело в том, что я не знаю ни перла, ни седа, не специальной команды, которая обрежет строку до последней точки. Зато немного знаю пхп.щас в любом языке программирования есть регекспы, тойсть регулярные выражения
в том числе и в пхп
на них ГОРАЗДО проще подобные вещи делать
sed - самая простая и тупая прога для вызова регекспов
синтаксис ее в гугле на каждом углу
это я к тому что написать предложенный мною скрипт будет быстрее чем придумывать как подлючить для этого пхп, тем более что пхп для этого не предназначен
(хотя бы потому что sed стоит почти на любой машине, а пхп мало где стоит)
а эти все седы и авки никто не знает, походу всегда ботают и пишутво-во
и я про то же
я sed нифига ненаю
а awk тем более
и этот скрипт написал открыв гугл и man sed
Внутри одинарных кавычек переменные не подставляются.
Надо так:
#!/bin/sh
php -r '$s = "'$1'"; $pos = strlen($s) - strrpos($s, "."); echo substr($s,0,-$pos);' | xargs mkdir
не очень то видно, что я там написал, вобщем перед $1 закрыл одинарную кавычку, а после $1 снова открыл.
спасибо!
Оставить комментарий
vlfdimir58
Мне надо, чтобы вместо bla.bla.bla было $1 - аргумент у shell-скрипта.
Но если записать
то, нужного эффекта не возникает
Вопрос - как?