Как выполнить различные профили с помощью удара или сценария оболочки в человечности?

В окнах я просто делаю это.

@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, но в человечности кажется более сложным. кто-то может сказать меня, где путь моих профилей?

1
задан 29 June 2018 в 05:32

2 ответа

Я не делаю пакета 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?)

2
ответ дан 3 December 2019 в 06:51

Оболочка Unix по умолчанию не дает Вам один одному эквиваленту для всех функций, которые Вы используете. Вот то, что можно сделать с основной оболочкой:

Трассировка

@echo off

По умолчанию сценарий оболочки тих, таким образом, это "прочь" по умолчанию. Флаг для включения трассировки -x (set -x).

Цикл 1 - 10

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))

Запустите Firefox как фоновый процесс

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 с 1,5 тайм-аутами с

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 (вряд ли) затем, Вы, вероятно, не должны преобразовывать ее вообще.

2
ответ дан 3 December 2019 в 06:51

Другие вопросы по тегам:

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