LINUX.ORG.RU
ФорумTalks

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


0

4

в винде работающую команду с дополнительными параметрами можно записать без пробелов и кавычек, например так: more%programfiles:~10,1%c:\Windows\system.ini где создаётся переменная из строки «Program Files», откуда вырезается пробел, который используется в качестве разделителя команды и её параметра

не смотря на мой опыт работы с линуксами, я не вижу очевидного универсального способа, который работал бы на большинстве систем и в стандартном окружении без использования кавычек и пробелов. возьмём, к примеру, команду cat /etc/passwd варианты?

Перемещено tazhate из development

из строки «Program Files», откуда вырезается пробел, который используется в качестве разделителя команды и её параметра

Но зачем?

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

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

lornikos
() автор топика

Есть идея. Берёшь свой любимый ЯП.

И делаешь команду

nospace command [sym]
где command - это команда, а sym - это символ который надо заменить на пробел. Выкладываешь в паблик и посылаешь исходники в debian, и возможно к следующему релизу debian оно будет.

rezedent12 ☆☆☆
()

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

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

Очередной тролль пришёл просто. На этот раз ЛСД перборщил.

cinyflo ★★★★★
()

перехожу на винду

это же киллер-фича. не знаю, как я жил без этого

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

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

тут скорее вопрос в извращенности и любви к неудобочитаемому быдлокоду.

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

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

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

вспомнилось чего-то

Программист: Настоящие_программисты_пробелом_не_пользуются.

webdesinger: Веб%20дизайнеры%20тоже.

далпайоп: Далпайопытоже.

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

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

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

в виндовс чтобы выполнить команду, например, чтения файла надо написать more c:\windows\system32\drivers\etc\hosts что содержит пробел и наша программа его не сможет выполнить есть переменная окружения programfiles = Program Files берём значение переменной, вырезаем оттуда один символ который идёт десятым по порядку, из полученного символа делаем переменную и используем в команде more%programfiles:~10,1%c:\windows\system32\drivers\etc\hosts таким образом команда выполнится

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

lornikos
() автор топика
Ответ на: комментарий от lornikos
~$cat</etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS"

Кушайте на здоровье (по крайней мере в запрошенном 'cat что-нибудь'). Пробелы в строках с пробелами можно будет резать sed'ом, я так думаю.

strangeman ★★★★
()
Последнее исправление: strangeman (всего исправлений: 2)
Ответ на: комментарий от strangeman

чтобы резать чем-то пробелы, надо задать что резать

чтобы задать что резать, надо sed'у или cut'у использовать доп параметры, что требует пробела плюс ваша последняя строка не универсальна

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

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

короче, я за бан

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

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

в общем-то, задача любым способом любым стандартным по и любыми доступными интерпретаторами записать команду без пробелов и кавычек

lornikos
() автор топика

Никогда не думал, что опущусь до такого, но все же - НЕ НУЖНО!

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

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

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

ты неадекватен

ага, я неадекватен, а ты пришёл сюда «вендовый» терминал нахваливать, ололо, давай досвиданья

shty ★★★★★
()

Тебе не кажется, что ты херней маешься?

И еще: только мудак будет создавать директорию с пробелом в имени!

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

но моих знаний не хватает для решения проблемы

Один я здесь не понял в чём именно заключается проблема?

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

У меня для тебя плохие новости:

Debian:

# find / -name '*\ *' -type d
/sys/bus/pnp/drivers/i8042 kbd
/sys/bus/pnp/drivers/i8042 aux

Ubuntu:

# find / -name '*\ *' -type d
/home/strangeman/Рабочий стол
/proc/irq/71/PCIe PME
...
/proc/irq/40/PCIe PME
/sys/devices/platform/Fixed MDIO bus.0
/sys/bus/pnp/drivers/i8042 kbd
/sys/bus/pnp/drivers/i8042 aux
/sys/bus/mdio_bus/drivers/Generic PHY
...
/sys/bus/mdio_bus/drivers/NatSemi DP83865

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

Вантузятник-неосилятор хочет, чтобы ему в линуксе такую же бредятину запилили.

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

чтобы выполнить команду, например, чтения файла надо написать more c:\windows\system32\drivers\etc\hosts что содержит пробел и наша программа его не сможет выполнить

Почему не сможет?

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

Это — не линукс

С бугуртом вам не сюда.

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

Смотрим внимательно на пути. Что ж вы так грубо о разработчиках ядра?

Олсо, в POSIX-совместимых системах пробелы в путях это нормально, свои виндовые/досовые традиции оставьте себе, ня -_-

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

очередной приступ - он запретил себе использовать пробел

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

Всё равно непонятно. Ты хочешь использовать в bash (или какой там у тебя шелл) другой разделитель вместо пробела? Патчи тогда.

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

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

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

в общем да. без патчей. уже выяснили что в bash - cat${LESSOPEN:11:1}/home/user/.bashrc но LESSOPEN не универсальная переменная

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

А какие условия-то требуются? Ты же не объяснил для чего все эти извраты и чего именно ты хочешь добиться. Чтобы это ни было - для этого есть более элегантное решение, и даже в венде, наверное, тоже.

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

Да показали уже, как это сделать - абсолютно также, как и в винде. Расходимся. :)

Как это отвечает на мой вопрос?

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

потому что нельзя использовать пробелы и кавычки, поэтому и не выполнится в топике есть ответы на все вопросы

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

но LESSOPEN не универсальная переменная

открой для себя IFS

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