На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
mops
Сообщения: 172
ОС: Ubuntu Feisty
Сообщение
mops » 02.01.2007 23:50
Есть скрипт, который конвертирует видео. В качестве первого аргумента он принимает название исходного файла. Так вот, как бы так сделать, чтобы он мог принимать например *.avi в качестве этого аргумента?
В bash я ноль, но докопался до такой штуки:
Это выводит всего навсего первый файл. А вот если сделать так:
то выводит все файлы.
Если вместо $1 подставить $@, то выводит все файлы и плюс остальные аргументы, что не годится.
Как же всё-таки правильно это сделать?
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Сообщение
diesel » 02.01.2007 23:58
ls "$1"|while read i; do
echo $i;
done
?
PS. только запускать как ./script '*.sh' чтобы раньше времени * не подставляло
mops
Сообщения: 172
ОС: Ubuntu Feisty
Сообщение
mops » 03.01.2007 00:11
diesel писал(а): ↑ 02.01.2007 23:58
ls "$1"|while read i; do
echo $i;
done
?
PS. только запускать как ./script '*.sh' чтобы раньше времени * не подставляло
Но таким же образом можно сделать и с предыдущим примером
Точно такой же результат.
А вот если без кавычек?
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Сообщение
diesel » 03.01.2007 00:15
mops писал(а): ↑ 03.01.2007 00:11
Но таким же образом можно сделать и с предыдущим примером
попробуй на названии файла с пробелами
mops писал(а): ↑ 03.01.2007 00:11
Точно такой же результат.
А вот если без кавычек?
./script *.avi - * подставляется до вызова скрипта. т.е. в реальности вызывается ./script 1.avi 2.avi ....
mops
Сообщения: 172
ОС: Ubuntu Feisty
Сообщение
mops » 03.01.2007 00:21
diesel писал(а): ↑ 03.01.2007 00:15
mops писал(а): ↑ 03.01.2007 00:11
Но таким же образом можно сделать и с предыдущим примером
попробуй на названии файла с пробелами
mops писал(а): ↑ 03.01.2007 00:11
Точно такой же результат.
А вот если без кавычек?
./script *.avi - * подставляется до вызова скрипта. т.е. в реальности вызывается ./script 1.avi 2.avi ....
А что тогда посоветуешь сделать? Скрипт вызывается таким образом
./script [source] [fps] [bitrade]
И как бы в таком случае обойтись без кавычек и иметь возможность отдавать скрипту маску?
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Сообщение
diesel » 03.01.2007 00:51
./script [source] [fps] [bitrade]
./script [fps] [bitrade] [sources]
fps=$1
bitrade=$2
shift 2
for i in "$@"; do
echo $i;
done
?
mops
Сообщения: 172
ОС: Ubuntu Feisty
Сообщение
mops » 03.01.2007 01:05
diesel писал(а): ↑ 03.01.2007 00:51
./script [source] [fps] [bitrade]
./script [fps] [bitrade] [sources]
fps=$1
bitrade=$2
shift 2
for i in "$@"; do
echo $i;
done
?
О, ну это уже лучше. Спасибо