один скрипт, использующий много файлов

Чтобы было ясно, не «каждый файл является исполняемым». Файлы имеют связанные с ними метаданные, и одна часть этих метаданных включает в себя то, является ли он исполняемым. Один из способов проверить эти метаданные — использовать команду ls:

.
$ ls -l
total 12
-rwxr-xr-x 1 ownerName groupName  4 Mar 20 18:01 executableFile
   ^  ^  ^

Я не хочу слишком углубляться в разрешения, но те x указывает на то, что файл является исполняемым, справа -до -слева, пользователем ownerName, любым членом группы groupName, или кем-либо еще. Часто ownerNameи groupNameбудут root, так что третий xбудет тем, кем вы, вероятно, будете больше всего интересует в краткосрочной перспективе.

Какой исполняемый файл запускается при вводе команды? Как и в Windows, существует переменная среды с именем PATH, которая содержит набор каталогов, в которых оболочка (интерпретатор команд )будет искать исполняемые файлы с указанным вами именем. Windows использует ;в качестве разделителя каталогов, Linux (и Unix обычно )использует :. Вы можете использовать команду echoдля печати содержимого этой переменной :

.
$ echo $PATH
/bin:/usr/bin:/usr/local/bin...

Вы можете использовать команду whichдля определения полного пути к команде:

$ which ls
/usr/bin/ls

Как упоминал @Stan Strum в комментарии выше, вы также можете использовать команду type:

$ type ls
ls is hashed (/usr/bin/ls)
0
18.02.2020, 12:56
2 ответа

Это можно сделать с помощью цикла for, например

for i in $(seq 1 10)
do
./script./directory file$i &
done
2
28.04.2021, 23:22

Bash3+ с раскрытием фигурных скобок.

for i in {1..10}; do
  /script./directory "file$i" &
done

С POSIXsh

i=1
while [ "$i" -le 10 ]; do
  /script./directory "file$i" &
i=$((i + 1))
done
0
28.04.2021, 23:22

Теги

Похожие вопросы