Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36

Как использовать имя директории, заданное в командной строке?

20.11.2013, 16:36. Показов 1536. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написала скрипт, но нужно сделать так, чтобы он работал для каталога введенного в качестве параметра.(т.е. при запуске задавать адрес каталога в командной строке)
Bash
1
ls $1 -lAR |awk '{if ($1~/:/) print "каталог " $1; else print $8 "\t" $6}'|grep "\w"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2013, 16:36
Ответы с готовыми решениями:

Файловый ввод: как сделать так, чтобы пользователь вводил имя выходного файла в командной строке?
Добрый день форумчане. Подскажите пожалуйста как сделать так чтобы пользователь вводил Имя выходного файла в командной строке. ...

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

Отделить путь и имя файла от аргументов в командной строке
Всем здравствуйте. Существует ли в VB.NET функция, выделяющая из командной строки с аргументами полное имя файла? Существует ли в...

12
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
20.11.2013, 16:45
а сейчас не задаётся ?
0
4 / 4 / 0
Регистрация: 29.08.2013
Сообщений: 35
20.11.2013, 16:56
Bash
1
2
read a
ls $1 -lAR |awk '{if ($1~/:/) print "$a" $1; else print $8 "\t" $6}'|grep "\w"
это?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
20.11.2013, 17:02
Цитата Сообщение от amphiby Посмотреть сообщение
Bash
1
print "$a" $1
awk по-другому работает
0
4 / 4 / 0
Регистрация: 29.08.2013
Сообщений: 35
20.11.2013, 17:25
Цитата Сообщение от accept Посмотреть сообщение
awk по-другому работает
не догнал, можешь подробнее?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
20.11.2013, 22:59
Цитата Сообщение от amphiby Посмотреть сообщение
не догнал, можешь подробнее?
ты не можешь обратиться к переменной из awk, её сначала нужно передать в awk через опцию командной строки

можно сделать так
Code
1
2
3
4
[guest@localhost ~]$ n=5
[guest@localhost ~]$ echo | awk "{print $n}"
5
[guest@localhost ~]$
но так не делают, потому что код в awk принято передавать в одинарных кавычках

поэтому делают так
Code
1
2
3
4
[guest@localhost ~]$ n=5
[guest@localhost ~]$ echo | awk -v n=$n '{print n}'
5
[guest@localhost ~]$
но так не очень красиво

в идеале, можно применить приём, часто используемый в sed'овских скриптах
Code
1
2
3
4
[guest@localhost ~]$ n=5
[guest@localhost ~]$ echo | awk '{print '$n'}'
5
[guest@localhost ~]$
походу, это будет оптимально
1
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
21.11.2013, 08:47  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
а сейчас не задаётся ?
мне нужно, чтобы было только имя папки, а не весь адрес каталога
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
21.11.2013, 20:33
Code
1
2
3
4
[guest@localhost ~]$ path=/home/guest/tmp
[guest@localhost ~]$ basename "$path"
tmp
[guest@localhost ~]$
Цитата Сообщение от JuliaDulceFlor Посмотреть сообщение
мне нужно, чтобы было только имя папки
если она станет так искать, то не найдёт ничего, потому что получится несуществующий относительный путь
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
21.11.2013, 20:56  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
Code
1
2
3
4
[guest@localhost ~]$ path=/home/guest/tmp
[guest@localhost ~]$ basename "$path"
tmp
[guest@localhost ~]$

если она станет так искать, то не найдёт ничего, потому что получится несуществующий относительный путь
т.е. не возможно вывести только названия, а не полный адрес?(
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
21.11.2013, 21:03
Цитата Сообщение от JuliaDulceFlor Посмотреть сообщение
т.е. не возможно вывести только названия
искать придётся всё равно по полному пути (так можно задать любой путь, находясь в любой директории)
а при выводе можно выделять из этого пути только имя
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
01.12.2013, 12:33  [ТС]
Shell-программа подсчитывает количество и выводит список всех файлов (без каталогов) в алфавитном порядке в поддереве, начиная с каталога, имя которого задано параметром Shell-программы.
Нужно чтобы имена каталогов были просто как имена папок, а не весь адрес, мне не понятен именно этот момент, как отрезать лишнее в строчке с директориями
Bash
1
ls $1 -lAR |awk '{if ($1~/:/) print "каталог " $1; else print $8 "\t" $6}'
может кто-нибудь подскажет какой-то другой способ, чтобы это вывести на экран...
0
 Аватар для hitomy
318 / 115 / 16
Регистрация: 07.10.2012
Сообщений: 542
01.12.2013, 21:23
Bash
1
basename
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
01.12.2013, 22:18
Цитата Сообщение от JuliaDulceFlor Посмотреть сообщение
подсчитывает количество и выводит список всех файлов (без каталогов) в алфавитном порядке в поддереве
думаю, там нужна find без awk
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2013, 22:18
Помогаю со студенческими работами здесь

Можно ли использовать буфер обмена в Командной строке?
командной строке можно ли использовать буфер обмена код та примитивный но тут скорей всего вопрос чем я напишу код - потому что я...

Назначить компьютеру имя в командной строке (Cisco Packet Tracer)
Здравствуйте, во время создания сети необходимой топологии столкнулся с вопросом описаным в заголовке. В интернете искал, но кроме того,...

Программа, которая принимает в командной строке имя файла и распечатывает его на экране
Программа, которая принимает в командной строке имя файла и распечатывает его на экране.

Ввести текст из файла, имя которого задано в командной строке, и вывести на экран
Ввести текст из файла, имя которого задано в командной строке и вывести на экран. Текст занимает весь экран (25х80) символов. Затем...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru