URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3772
[ Назад ]

Исходное сообщение
"bash запуск файлов"

Отправлено Alba , 28-Дек-04 00:43 
торможу... истина где-то рядом, а поймать не могу :)
есть директорий... обычно пустой... но, иногда там появляются исполняемые файлы... может один, а может и сразу несколько... имена файлов - как попало...

надо их как-то по-очереди все запускать и, уже запустившиеся удалять...

щас делаю так:

if [ `ls /srun/` ]; then
for i in `dir -r -1 --sort=t /srun/*`; do
  $i;
  rm $i;
done;
fi;

проблема в том, что если файлов появляется сразу несколько, то - "...unary operator expected"
что подправить?


Содержание

Сообщения в этом обсуждении
"bash запуск файлов"
Отправлено Brainbug , 28-Дек-04 10:10 
>торможу... истина где-то рядом, а поймать не могу :)
>есть директорий... обычно пустой... но, иногда там появляются исполняемые файлы... может один,
>а может и сразу несколько... имена файлов - как попало...
>
>надо их как-то по-очереди все запускать и, уже запустившиеся удалять...
>
>щас делаю так:
>
>if [ `ls /srun/` ]; then
> for i in `dir -r -1 --sort=t /srun/*`; do
>  $i;
>  rm $i;
> done;
>fi;
>
>проблема в том, что если файлов появляется сразу несколько, то - "...unary
>operator expected"
>что подправить?

     1  #!/bin/sh
     2
     3  for i in `ls -t /srun`; do
     4          <zapusk i stiranije failov>
     5  done

P.S. Dumaju nado e6e postavitr filtr na to 4tobi pokazival tolko faili i proveral stoit li na nih pravo zapuska.
Pered etim e6e mozno postavit proverku na to jest-li voob6e takaja direktroija i jest li u neje sootv. prava.
Neponatno za4em eto  - if [ `ls /srun/` ]; then. Jesli proverit jest li tam faili, togda eto ne jest pravilno. Esli
proverit nali4ije direktorii, to toze. Po mojemu imenno na etom meste i jest o6ibka, t.k. esli fail 1 to eto true,
a jesli ih neskolko i razdeleni oni probelom, to dla testirovanija podajetca stroka vida: <file> <file1> ...<filen>.
I kak skazat true eto ili false ?!


"bash запуск файлов"
Отправлено Alba , 28-Дек-04 13:24 
проблема решена... поспал, и, всё прошло :)
по-поводу нескольких файлов, разделённых пробелом есть ключ "-1" - показывать по одному файлу в строке...

for i in `ls -t -r -1 --sort=t /srun`; do
/srun/$i;
rm /srun/$i;
done;



"bash запуск файлов"
Отправлено Brainbug , 28-Дек-04 14:04 
>проблема решена... поспал, и, всё прошло :)
>по-поводу нескольких файлов, разделённых пробелом есть ключ "-1" - показывать по одному
>файлу в строке...
>
>for i in `ls -t -r -1 --sort=t /srun`; do
> /srun/$i;
> rm /srun/$i;
>done;

Da pri4em tut klu4 -1. On kstate kak i --sort=t tut voob6e ne nuzet, t.k.
--sort=t eto tozhe samoje 4to i -t.
Ja tebe pro [ komandu govoril na kotoruju on i rugalsa.


"bash запуск файлов"
Отправлено XMan , 29-Дек-04 00:39 
На все случаи жизни, в том числе и от переменных окружения (PATH например):

for i in /tmp/*; do
  [ -x "$i" ] || continue;
  [ -f "$i" ] || continue;
    "$i" && /bin/rm "$i"
done

Если нужно удаление файла вне зависимости от результатов работы, то && заменить на ;

PS. Название каталога хорошее :)


"bash запуск файлов"
Отправлено Brainbug , 29-Дек-04 15:16 
>На все случаи жизни, в том числе и от переменных окружения (PATH
>например):
>
>for i in /tmp/*; do

Togda uzh lu46e:
for i in /tmp/{*,.*}

Dabi ne otbrasivat .<filename> faili.

>  [ -x "$i" ] || continue;
>  [ -f "$i" ] || continue;
>    "$i" && /bin/rm "$i"
>done
>
>Если нужно удаление файла вне зависимости от результатов работы, то && заменить
>на ;
>
>PS. Название каталога хорошее :)