LINUX.ORG.RU
ФорумTalks

командная строка


0

0

Почему в linux нет нормальной командной строки? Неужели это никому не надо. Да, она намного лучше чем cmd.exe, но кривизна bash иногда просто поражает.

Конструкции вида for i in `seq 1 15` ; do (с обязательной ";" после do) или if [ -d ... ] еще не самое страшное.

Когда же в linux-е появится нормальная командная строка, в которой без гемороя можно будет, например, переименовать файлы вида

<строка><число><другая строка>

в <cтрока><тоже число, но дополненное нулями до 4 знаков><другая строка>

И дело не в том, что именно такая вожмножность нужна, а в том, что задачки такого рода в нормальной оболочке должны делаться с пол-пинка.

anonymous

нифига не смешно

надо было сказать, что cmd.exe значительно лучше bash

theserg ★★★
()

Просто командная строка - это не для тебя. Юзай krename, он для твоих мощных задач как раз подойдёт.

Teak ★★★★★
()

> Когда же в linux-е появится нормальная командная строка, в которой без гемороя можно будет, например, переименовать файлы вида

> <строка><число><другая строка>

> в <cтрока><тоже число, но дополненное нулями до 4 знаков><другая строка>

rename 's/(\d+)/sprintf("%04d", $1)/e' *

Учи perl (и албанский).

anonymous
()

я ооочень плохо знаю ш /aka sh :)/, но и то после полу часа проб и ошибок кое как справился бы

Pi ★★★★★
()

>с обязательной ";" после do

Это как? Вообще-то:

for i in `seq 15`;do command1;command2&command3;command4&done

mikhail
()

>Конструкции вида for i in `seq 1 15` ; do (с обязательной ";" после do) >или if [ -d ... ]

и что?
можно писать так

for i in `seq 1 15`
do
...

и можно писать так

if test something;
then
fi

anonymous
()

да шел вообще нахрен не нужен, ты чего

все надо из гуи делать, и автоматизацию выбором опций и нажатием кнопочек

anonymous
()
Ответ на: комментарий от Teak

>Просто командная строка - это не для тебя. Юзай krename, он для твоих мощных задач как раз подойдёт.

Командная строка как раз для меня. Причем я ее юзаю не из-за дешевых понтов, а потому что для многих задач она лучше. krename не ставил, но ни krename, ни gnome, ни kde мне точно не нужно.

В тоже время мне кажется что командная строчка могла быть намного лучше чем сейчас.

anonymous
()
Ответ на: комментарий от bugmaker

>Запарили виндузятники :( Строка есь? Есь! Камандуит? Камандуит! Чё щё нада то?

Нормальный надор команд. Командная строчка с asm-ом юзеру совсем не нужна

anonymous
()
Ответ на: комментарий от anonymous

>можно писать так

Можно. На мой взкляд \n в качестве особого разделителя (то есть разделителя, который без потери смысла нельзя заменить на пробел или \t) есть изврат. а `seq 1 15` это вообще для гурманов-извращенцев

anonymous
()
Ответ на: комментарий от anonymous

>можно писать так

В догонку

Вводить многострочные команды прямо в командной строчке тот еще геморрой.

anonymous
()
Ответ на: комментарий от borisych

>psh

Perl конечно мощнее bash, но кривости у него тоже хватает

anonymous
()
Ответ на: комментарий от bugmaker

>Например што должно входить в этот набор?

Ну хотябы pattern-matching, элементарные арефмитические операции, форматирование ala html. Масивы или списки.

anonymous
()
Ответ на: комментарий от anonymous

патернмачинг вроде есь в седе? Арифметика - в бц. Нащёт форматирования непонял, ково форматировать? ИМХО баш-скрептом без проблем можно хтмлину сгенерить, только непошто. Масивы можно в временные файлы пихать, токмо опять-таки, непошто. Или покажеш задачю в которой без их нуникак прямо? Списки чз пайпы делаюца.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>Например што должно входить в этот набор?

Ну уш поиск в глубину/ширину должен осуществлятся средствами командной строки, а не find/wget.

anonymous
()
Ответ на: комментарий от bugmaker

>патернмачинг вроде есь в седе? Арифметика - в бц. Нащёт форматирования непонял, ково форматировать? ИМХО баш-скрептом без проблем можно хтмлину сгенерить, только непошто. Масивы можно в временные файлы пихать, токмо опять-таки, непошто. Или покажеш задачю в которой без их нуникак прямо? Списки чз пайпы делаюца.

Если список из строк с пробелами...

Вот и дело то в том, что все вроде-бы есть, а чего нет можно найти какую нибудь прогу вроде sed/bc/krename, или самому написать если очень припрет, но все настолько криво

На счет форматирования, запускаешь скрипт, а он тебе результат в виде таблицы, которую отображает терминал. Мячты....

anonymous
()
Ответ на: комментарий от anonymous

А ты юзай find/wget изнутри командной строки и будет оный средством комадной строки, а не кренама, всево делов.

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

Форматирование дленах? Умя под рт11 утилита бысть, форматировала всякое, особенно перед как начяпятать. Переносы умела, может даже рамочьки в таблицах - про рамочьки непомню достоверно. Ворда под рт11 небыло, приходилось ея юзать. Наверное несложная и нежоркая до ресурсов, наверное можно сырцов найти или такое же зделать. Просто не очень представляю ситуацию, когда могет такое потребно бысть.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>А ты юзай find/wget изнутри командной строки

Я юзаю, а как например загнать в playlist mp3шники заданного исполнителя find-ом.

anonymous
()
Ответ на: комментарий от bugmaker

> Просто не очень представляю ситуацию, когда могет такое потребно бысть.

Например ps/du/df. Например du <измененные за сегодня файлы>

anonymous
()
Ответ на: комментарий от anonymous

Если филенамы в порядке, то ничё стложново. Напремер формат имяни:

Изполнитель#Названя пестни.mp3

делаеш чёто типа

find -iname "*.mp3" | while read i ; do if [ $1 == `echo $i | cut -d # -f 1` ] ; then mpg321 $i ; fi ; done

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>find -iname "*.mp3" | while read i ; do if [ $1 == `echo $i | cut -d # -f 1` ] ; then mpg321 $i ; fi ; done

Здорово, а если исполнитель в ID-таге, в названии файла только названии композиции.

anonymous
()
Ответ на: комментарий от anonymous

Ну, наверное есь утелита, которая могет тегу извлехчь? Если, то вместо echo $i | cut -d # -f 1 вызываеш таковую, или зарания переминовываеш, што ИМХО удобнея с другой стороны. Если нету, тада низнаю :( но причём тута строка в таком разе, непонятно, чем она провинилась если ей командовать некем?

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

find -изменёныя за сёдня -exec щитаеш розмер | while read i ; do суммируеш ; done; выводиш результат зачем мосив непонятно?

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>Ну, наверное есь утелита, которая могет тегу извлехчь?

Знаю что есть, например mp3info

Но от командной строчки в которой можно было бы написать что-то типа

forall f in subtree(<директория>) do if mp3info(f).artist == "<заданный чувак>" then xmms.add(f)

или даже xmms.playlist := (select file from subtree(<директория>) where mp3info(f).artist == "<заданный чувак>" ) `union` xmms.playlist

я бы не отказался

anonymous
()
Ответ на: комментарий от bugmaker

find -изменёныя за сёдня -exec щитаеш розмер | while read i ; do суммируеш ; done; выводиш результат зачем мосив непонятно?

Конкретно здесь не нужно, а вот распознать правильное скобочное выражение используя O(1) памяти (стек вызовов считается) невозможно.

anonymous
()
Ответ на: комментарий от anonymous

Ты смогеш зделать непротиворечивую и удобныя сестему команд? Которыя бысть бы луче всех существующих? Это главное и самыя трудное. Ести можеш - зделай, а заимплементить несложно.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>Чёто недогоняю я, боярин, какое скобочное выражение хотиш распознавать

1) пустая строка - это правильное скобочное выражение

Если P,Q правильные скобочные выражения, то

2) PQ правильное скобочное выражение

3) (P) - тоже правильное скобочное выражение.

4)Других правильных скобочных выражений нет.

Язык всех правильных скобочных выражение не является регулярным языком по лемме о разрастании.

Программа, использующая только O(1) памяти - по существу конечный автомат => не может распознать правильное скобочное выражение.

Это так, к слову

anonymous
()
Ответ на: комментарий от parser

>Блин, запарил меня этот anonymous. Не нравится? Возьми и напиши то, что тебе надо.

Вот когда хотя бы универ закончу, тогда может быть и напишу, сейчас врядти.

bash как пускалка для guiшных прог не намного лучше Пуск->выполнить, а для менее тревиальных команд его кривизна очевидна. Мне просто интересно, неужели это никому не надо? Может быть кто-то уже что-то реализовал?

anonymous
()
Ответ на: комментарий от stassats

>так это ж unix-way

Unix-way это когда все криво, или когда для каждой задачи (вроде shella) есть одна прога, которая решает эту задачу хорошо.

anonymous
()
Ответ на: комментарий от bugmaker

>Ты смогеш зделать непротиворечивую и удобныя сестему команд? Которыя бысть бы луче всех существующих? Это главное и самыя трудное. Ести можеш - зделай, а заимплементить несложно.

Чесно говоря я думал все как раз наоборот. Я думал, что потобная кривизна от того, что нет нормального shella, позволяющего передавать программам типизированные параметры, а авторы утилит, когда описывают параметры, выбирают то, что проще реализовать и мало заботятя о единообразии.

anonymous
()
Ответ на: комментарий от bugmaker

to bugmaker

Мне кажется или в твоих постах действительно чувствуется некоторая легкая обида. Я задел твои религиозные чувства? Или ты принимал участие в разработке bash?

anonymous
()
Ответ на: комментарий от anonymous

Про буквари все слыхали, што бывают. Я недогоняю, каким боком это к к командной строке?

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

Нету обиды. Не был, не состоял, не учяствовал, не привлекался... Прсто удивлёный, чё народу нехватаит. баш ненравица - возми сш, так мнозия поступают. Ништо не нравица и есь идеи как луче зделать - пробывай реализавать, не могеш сам - пропишы идеи в статье поподробней. Сочьтут нужными и полезными - хтонть зделает. Недостаток идей - это самый распространёный и досадный недостаток. И оне, идеи, нужны. Как бы не бых хорош баш, должно существовать штото _принципиально_ лучее, только проблема разработать, составить непротиворечивый и однозначьный набор команд. Зачем в толках ныть - непонятно и удевительно.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

Ты из белоруси или специально так пишешь с ошибками? Тут, говорят, это правилами запрещено.

K48 ★★★★
()

Автор, тебе же сразу сказали, что можно юзать в качестве шела python, scheme, perl и поди ещё что-то. Тебе что не хватает???

А в качестве интерактивного шела, попробуй zsh, мощнее bash на много.

CrazyPit ★★★
()
Ответ на: комментарий от anonymous

>Ну хотябы pattern-matching элементарные арефмитические операции... Масивы или списки.

А это что:

case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac

a=(1 2 3 4)

echo $((a[1]+a[3]))

Чем тебе не "pattern-matching,Масивы или списки,арефмитические операции"?

Вот чего в нем нет - так это нормального синтаксиса. Возможно нужно в сторону rc смотреть. Или ipython, возможно.

DonkeyHot ★★★★★
()
Ответ на: комментарий от K48

Не, ниаттуда, далше намнозе. Ачё, пишу как умею. Тёмно тута, я русских буквинок невыучил щё где на кнопках есь, лехко токмо могу впотьмах буквинки находить которые в С/С++. Сюды пощю када устал и недосужно щё буквинок искать и за всякеми арфаграфеями следить, да тут ИМХО мало хто слидит - ретко видиш предложения болше чем стрёх словов без ашыпки. Правилов конешно норушать ацтойно и никрута. Токмо естли ужо мадиратары правела нарушают нарошно, причём аткрыто гаварят што будут вредь потомушто им неплотют затоштобы оне правила ненарушали, то астальным пасититилям темболее на се поклась можно.

bugmaker ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.