LINUX.ORG.RU

Почему не Perl?

Вся моя кроссплатформенная (Linux, BSD) скриптота пишется мной исключительно на Perl, и работает всегда и везде (где я её запускаю).

r3lgar ★★★★★
()
Последнее исправление: r3lgar (всего исправлений: 1)

Для скриптов вполне. Для интерактивной работы нужно допилить интерпретатор, так как нет синтаксиса комбинаторов типа пайпов и перенаправлений.

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

Зачем, если есть powershell?

И что, он будет нормально работать с линуксовыми утилитами типа coreutils? И будет под линуксом нормально выполнять команды нужные для всяких железок типа аналога ifconfig?

А вообще PowerShell плох как минимум тем что чудовищно тормозной. Например где GNU find просканирует всю файловую систему за пару десятков секунд, powershell-скрипт с аналогичной функциональностью будет тупить может быть часами.

Xenius ★★★★★
()

Зачем кроссплатформа, если у десяточки есть WSL?

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

И что, он будет нормально работать с линуксовыми утилитами типа coreutils? И будет под линуксом нормально выполнять команды нужные для всяких железок типа аналога ifconfig?

Будет, почему нет?

Deleted
()

Подойдёт ли?

для личного повседневного пользования, зависит от степени упоростости :-) В качестве системного, в каком-то *NIX он применялся

можно настроить tkcon вместо блекджека с девами :-) в привычном tclsh надо подтягивать как минимум readline.

только нафига это надо ? когда есть узко-специализированные шелы, заточенные именно для того чтобы быть шелами

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

нужно допилить интерпретатор, так как нет синтаксиса комбинаторов типа пайпов и перенаправлений.

вызывающе неверная информация..

~ $ tclsh
% info tclversion
8.6
% ls /etc | wc -
    257     257    2483 -
% 
MKuznetsov ★★★★★
()
Ответ на: комментарий от Deleted

Столь же кроссплатформенный, сколь tcl?

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

А вообще PowerShell плох как минимум тем что чудовищно тормозной.

Ага, я так и подумал, и поэтому не стал его пробовать. У меня задача написать скрипт, который по горячей клавише будет переключаться в другое приложение. Каждый раз для этого ждать запуск PowerShell - не по моему темпераменту. Уже написал на bash, расходимся :)

den73 ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Будет, почему нет?

А почему бы и да? Ты вообще-то пробовал этот PowerShell прежде чем советовать, хотя бы на Windows?

Я вот попробовал и понял, что все слова о его потрясающих возможностях — не более чем реклама. Фичей может и много, но пользоваться этим невозможно.

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

proc unknown (для интерактивной среды) делает exec, а exec умеет редиректы. Не совсем как в sh, например, ls etc/|wc -l (без пробелов) не сработает ожидаемым образом. Всякое 9< /file-number-nine.txt тоже нельзя, как и < <(echo my stdout is /proc/self/fd).

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

И как это работает?

unknown вызывает вызывает ф-цию tcl exec.. который не совсем (совсем не) аналог exec() :) а внимательно парсит аргументы, строит конвеер используя dup2, делает подстановки в/из открытых потоков и переменных и так далее.. То есть конвеер он строить имеет, перехватывать и перенаправлять стандартные stdin/stdout/stderr тоже.

до нормальных функций шела нужны ещё (во первых) работа с сигналами - по имеющимся сведениям, с этим должен справляться пакет Tix, сам не использовал, не гарантирую. :-) И ещё взаимодействие с порождёнными/дочерними шелами (когда из шел вызвал процесс, а он вызвал другой шел) - в них надо много чего унаследовать помимо env.

из любого языка имеющего REPL можно сделать аналог shell. Насколько будет удобно,привычно и сколько надо допиливать это уже другой вопрос. :-)

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

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

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

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

и при этом см LXDE, lubuntu-desktop - открывать приложение или переключаться в него по горячей клавише

это всё ни разу не функции и задачи системного шел

может это и недостаток *nix :-) но машина может быть без клавиатуры и любого DE. или с тремя клавами и 5-ю скринами. Оттуда и взялись d-bus и подобные. Но это опять-же это не шел, причём тут он ??

тут блин чем не заменяй, хоть power-щель, хоть питон, хоть кто..unix-шел не в курсе хот-кеев просто физически

MKuznetsov ★★★★★
()

На REXX сразу пиши, че ты.

Чтобы было кроссплатформенно, вот тебе выбор:

[alexv@ip-192-168-102-93 ~]$ which perl
/usr/bin/perl
[alexv@ip-192-168-102-93 ~]$ which python
/usr/bin/python
[alexv@ip-192-168-102-93 ~]$ which sh
/usr/bin/sh
[alexv@ip-192-168-102-93 ~]$ which tclsh
/usr/bin/which: no tclsh in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which ruby
/usr/bin/which: no ruby in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which java
/usr/bin/which: no java in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which php
/usr/bin/which: no php in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which node
/usr/bin/which: no node in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which go
/usr/bin/which: no go in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which powershell
/usr/bin/which: no powershell in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ 

Эти три варианта ты можешь найти практически на любой юникс-системе от AIX до NetBSD, а на Windows это можно легко поставить. Остальное - создание себе гемора на пустом месте.

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

Лжёшь, собака. На гошечке ты заранее под все архитектуры компильнёшь и всё. Заработает даже там, где нет ни шелла ни перла.

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

Какой же ты плоский, одномерный. Когда ты учил Qt, то трещал о них в каждом треде. Учил rust пищал о нём где надо и не надо. Сейчас ты учишь python и таскаешься с ним по всем темам. Со стороны видно какой ты. Ты этого не понимаешь. И ты не ответишь анонимусу, я гарантирую это. Ты предсказуемая амёба.

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

А вообще PowerShell плох как минимум тем что чудовищно тормозной.

Например где GNU find просканирует всю файловую систему за пару десятков секунд, powershell-скрипт с аналогичной функциональностью будет тупить может быть часами.

Сравниваешь тёплое с мягким.

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

Кроссплатформенная замена bash - это питон.

Пиздёж и провокация.

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

Сравниваешь тёплое с мягким.

Ну можно сравнить PowerShell с cmd на одной и той же задаче, cmd по скорости сильно выигрывает. Проблема лишь в крайней убогости cmd и виндовых утилит/команд типа type, find (который на самом деле недо-grep), for (который немного похож на find) и тд.

В общем по-моему PowerShell это хрень какая-то. И скриптовый интерпретатор не очень и как интерактивная консоль плохо. Мне кажется тот же tclsh и то лучше как интерактивная консоль, раз уж туда пайпы добавили.

Xenius ★★★★★
()

Tcl не подойдёт. Bash и так будет кроссплатформенным.

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

В тегах же скриптинг, а не шелл. Для скриптинга - или Perl, или Tcl отлично подходят.

Для шелла - хз, но вроде где-то пилился опенсорсный кроссплатформенный Power Shell. Больше вариантов замены bash не вижу.

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

ути-пути, «аикс»!

прекращай истерику, и питон вычёркивай — эта хрень сама с собой не совместима, хоть и суют её сейчас везде

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

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

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

Ты ссылку, которую мне прислал, сам открывал хоть? Там тебе с разбегу предлагают создать пакет с тиклем для аикса. Логично, че: дохлый язык под дохлую операционку.

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

А какой? 2? 3? Для простого быстрого walk по файлам второму питону надо либу (!!!), потому что всё очень плохо в os.walk. Третий питон есть не везде (пока). Да и лучше на го или хаскелле запилить бинарник, он точно везде будет работать так как надо.

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

ls

Как ты собрался делать кроссплатформенность с ls? Потащишь с собой cygwin? Так там и bash есть, мог бы и не напрягать людей вопросами.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Пусть не конкретно ls, а то, что его в Питоне заменяет.

den73 ★★★★★
() автор топика
Ответ на: комментарий от slaykovsky

Третий питон есть не везде

Это где его нет?

Да и лучше на го или хаскелле запилить бинарник, он точно везде будет работать так как надо.

Ага. noname бинарь на 10 метров vs текстовый файл на 10 строк.

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

Ты мне воду не мути, и лисперов всуе не упоминай. Ты конкретно напиши, как будет. Или это слишком сложная задача?

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