Воскресенье равно 0, понедельник — 1 и т. д.
http://man7.org/linux/man-pages/man5/crontab.5.html
The time and date fields are:
field allowed values
----- --------------
...
day of week 0-7 (0 or 7 is Sunday, or use names)
Вы были очень близко:
i=0
while [ $i -le 4 ]; do
alias "c$i"="ssh computer-1-$i"
i=`expr $i + 1`
done
Просто добавьте символ $
перед i
внутри цикла while .
Это можно сделать с помощью nmap
и сценария, Например, http-get.nse *
$ nmap -p* --open --script http-get.nse --script-args http-get.path=/,http-get.match="downloads" 192.168.13.2
Starting Nmap 6.40 ( http://nmap.org ) at 2015-05-13 23:09 CEST
Nmap scan report for 192.168.13.2
Host is up (0.029s latency).
Not shown: 4235 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
| http-get:
|_ GET / -> 200 OK
5050/tcp open mmcc
| http-get:
|_ GET / -> 200 OK
5051/tcp open ida-agent
| http-get:
|_ GET / -> 303
5055/tcp open unot
| http-get:
| GET / -> 200 OK
|_ Matches: downloads
8118/tcp open privoxy
| http-get:
|_ GET / -> 400
8200/tcp open trivnet1
| http-get:
|_ GET / -> 200 OK
Nmap done: 1 IP address (1 host up) scanned in 17.31 seconds 192.168.1.1
Он выдает http-запрос каждому обнаруженному открытому порту и запрашивает страницу по пути, указанному в http-get.path =
в -script-args
, и просматривает ответ, чтобы найти соответствующее ключевое слово, определенное в http-get.match =
. он сообщает код состояния запроса GET и, возможно, совпадение ключевого слова.
5055/tcp open unot
| http-get:
| GET / -> 200 OK
|_ Matches: downloads
Этот сценарий может потребовать дальнейших изменений, например. Я не проверял поддержку https. Но это должно тебя начать.
* Я раскошелился, чтобы исправить и подправить его. Кредит за сценарий достается Дэвиду Виттману .
-121--105393- touch
создает новый пустой файл, если он не существует, потому что это то, для чего он был разработан. Утилита должна содержать код для конкретной обработки этого случая. Утилита появилась в Unix V7 ; его руководство описало его таким образом:
touch - дата обновления последнего изменения файла
touch
пытается установить дату изменения каждого файла . Это делается путем считывания символа из файла и его обратной записи. Если файл * * * не существует, будет предпринята попытка его создания, если не указан параметр-c
.
(Не знаю, что сделал touch
, если файл был пуст. Основной системный вызов пришел позже.)
Я не знаю точно, почему touch
был разработан для создания файла, но я подозреваю, что это из-за make
. Почему необходимо установить текущее время изменения файла? Есть случаи, когда было бы полезно установить время модификации на определенное время, но эта возможность появилась позже, исходный сенсорный
мог установить время модификации только на текущее время. Причиной этого является повторное выполнение правила make
, зависящего от файла.
Предположим, что у вас есть файл foo
и makefile, который объявляет команду для создания bar
из foo
. При вводе make bar
выполняется команда и создается bar
. Если bar
существует и является более новой, чем foo
, make bar
ничего не делает, поскольку make
предполагает, что bar
уже создан. Однако если bar
старше foo
, сделайте вывод о том, что bar
не является актуальным и нуждается в регенерации.
Но что делать, если изменились правила создания панели
? Тогда у вас есть два варианта:
rm bar; сделать брусок
сенсорным foo; make bar
Для создания bar
потребуется foo
, в противном случае команда обычно не работает.
Терминология «прикосновения» также присутствовала в утилите make
: make -t bar
будет только притворяться, что выполняет команды, то естьустановка времени изменения bar
на текущее время без фактического выполнения команды создания bar
(это можно сделать, если вы считаете, что изменения в foo
не должны влиять на bar
). Поэтому утилита touch
была автономной версией функции make -t
.
Ваша непосредственная проблема заключается в том, что i
является только односимвольным рядом. Для доступа к значению переменной i
необходимо использовать синтаксис для доступа к значению переменной: «$ i»
.
while [ "$i" -le 4 ]
(Здесь можно опустить двойные цитаты, но использовать их - хорошая привычка влезать.)
Оболочки имеют встроенную базовую арифметику. Утилита expr
является остатком старых дней, когда они этого не сделали. Вы можете написать
i=0
while [ "$i" -le 4 ]
do
alias "c$i=ssh computer-1-$i"
i=$((i + 1))
done
Обратите внимание, что вам не нужен (и не следует использовать) доллар внутри двойных скобок. Внутри арифметического выражения имя переменной расширяется до значения переменной.
Bash имеет C-подобный синтаксис цикла. Поскольку это ваш файл запуска bash, нет причин не использовать синтаксис bash-specific.
for ((i = 0; i <= 4; i++)); do
alias "c$i=ssh computer-1-$i"
done