The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите разобраться со звёздочкой (shell)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Помогите разобраться со звёздочкой (shell)"  +/
Сообщение от openda (ok) on 17-Сен-09, 23:06 
Доброго времени суток!

Есть такой скрипт (точнее часть скрипта:) ):
#!/bin/bash
echo "$1"
for file in $1                    
  do
   echo "$file"
done
exit 0

Если в качестве параметра скрипту передать "*" то будет обработан только первый файл в каталоге и echo "$1" выводит имя только первого файла, хотя в терминале "echo *" выводит список всех файлов в каталоге. Как можно использовать звёздочку в качестве параметра скрипта, чтобы обрабатывались все файлы и при этом не экранировать звёздочку прямо в командной строке?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите разобраться со звёздочкой (shell)"  +/
Сообщение от Slavaz (ok) on 17-Сен-09, 23:46 
>[оверквотинг удален]
>   echo "$file"
> done
>exit 0
>
>Если в качестве параметра скрипту передать "*" то будет обработан только первый
>файл в каталоге и echo "$1" выводит имя только первого файла,
>хотя в терминале "echo *" выводит список всех файлов в каталоге.
>Как можно использовать звёздочку в качестве параметра скрипта, чтобы обрабатывались все
>файлы и при этом не экранировать звёздочку прямо в командной строке?
>

1) замени в скрипте $1 на $@
2) man bash
3) https://www.opennet.ru/docs/HOWTO-RU/Bash-Prog-Intro.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру