В окнах я просто делаю это.
@echo off
for /L %%n in (1,1,10) do start "" "C:\Program Files\Mozilla Firefox\firefox.exe" -P user%%n -no-remote imacros://run/?m=we.js ping 192.168.1.1 -n 1 -w 1500 > NUL
Существует некоторый эквивалент в человечности для выполнения различных профилей, которые путь моего Firefox, /opt/firefox/firefox
и потребность делает цикл для выбора различных пользователей.
ВАЖНЫЙ. Я должен выполнить все свои профили одновременно.
Другой вопрос. Где путь моих профилей в Firefox в человечности. В окнах просто просто в appdata, но в человечности кажется более сложным. кто-то может сказать меня, где путь моих профилей?
Я не делаю пакета grok, но предположения значения, что эквивалентный удар был бы похож:
for n in {1..10}
do
/opt/firefox/firefox -P user$n -no-remote imacros://run/?m=we.js ping 192.168.1.1 -n 1 -w 1500 &> /dev/null &
done
{n..m}
форма последовательности расширения фигурной скобки в ударе. Вы могли также использовать C-стиль для цикла:
for ((n = 1; n <= 10; n++))
do
...
done
$n
то, как Вы получаете значение переменной n
.
&> /dev/null
перенаправления и ошибка и нормальный вывод к /dev/null
специальное устройство, эффективно отбрасывая их&
отдельно отправляет команду в фон, таким образом, сценарий больше не ожидает команды для окончания прежде, чем продолжиться к следующей команде.Ваши профили Firefox вероятны в ~/.mozilla/firefox/
.
(Это ping
действительно часть аргументов Firefox?)
Оболочка Unix по умолчанию не дает Вам один одному эквиваленту для всех функций, которые Вы используете. Вот то, что можно сделать с основной оболочкой:
@echo off
По умолчанию сценарий оболочки тих, таким образом, это "прочь" по умолчанию. Флаг для включения трассировки -x
(set -x
).
for /L %%n in (1,1,10)
Это может быть сделано в сценарии оболочки Unix с помощью переменной и a while
. Более новые оболочки, такой как bash
, предложение способы записать такой, но если Вы хотите записать сценарий, который продолжает работать (почти) все машины Unix, затем Вы хотите придерживаться основных характеристик:
#!/bin/sh
n=1
while test $n -le 10
do
...
n=`expr $n + 1`
done
...
сценарий должен быть выполнен 10 раз. expr
команда используется для постепенного увеличения счетчика одним на каждом повторении. Заметьте пробелы, они важны (не добавление отступа, хотя я предложил бы, чтобы Вы сохранили добавление отступа надлежащим).
Как @Olorin упомянутый, expr
команда может также быть заменена:
n=$(($n + 1))
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" &
-P user%%n -no-remote imacros://run/?m=we.js
(Я повредил строку в сценарии DOS, который требует &
в конце строки).
Здесь Вы запускаете, использование программы "запускаются", что означает, что оно идет в фоновом режиме. И Вы указываете параметры, один из которых использует тот счетчик n
. Принятие Firefox находится в Вашем пути (это будет при установке версии по умолчанию), затем, Вам не нужен полный путь, просто следующее:
firefox -P user$n -no-remote imacros://run/?m=we.js &
Это sh
сценарий, где окончание &
используется для запуска того процесса в фоновом режиме. Это означает, что команда запускается, и оболочка сразу возвращается.
Вам также установили специальную переменную, которая дает Вам PID нового процесса. Это могло быть полезно позже, если Вы хотите отправить сигнал или просто знать, работает ли процесс все еще или нет. (т.е. FIREFOX_PID=$!
- в Вашем случае, тем не менее, Вы собираетесь запустить 10 из них... всего одна такая переменная не работала бы на Вас.)
ping 192.168.1.1 -n 1 -w 1500 > NUL
Этот ping похож на отдельную строку кода. -n 1
должен повторить одно время и -w 1500
указывать тайм-аут. -w
тот к одному эквиваленту на Linux. -n
(число), однако, должно быть заменой -c
(количество). Наконец, NUL
специальный файл может быть заменен /dev/null
.
ping 192.168.1.1 -c 1 -w 1500 > /dev/null
Примечание: для создания ping тихим можно также использовать -q
как в:
ping 192.168.1.1 -q -c 1 -w 1500
Конечно, если ping
часть командной строки Firefox (вряд ли) затем, Вы, вероятно, не должны преобразовывать ее вообще.