Сценарий bash, возможно, синтаксическая ошибка, не уверен, что пытаюсь выполнить цикл доPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сценарий bash, возможно, синтаксическая ошибка, не уверен, что пытаюсь выполнить цикл до

Сообщение Anonymous »

Я пытаюсь написать сценарий wol для своего сервера. Что Raspberry Pi выполняет каждый раз при загрузке.
Думаю, это синтаксическая ошибка, но сейчас я не знаю решения, поэтому спрашиваю вас.
Я получаю сообщение ошибка в строке 5, но понятия не имею, как ее исправить.
#!/bin/bash

nas=[ping -c 1 192.192.168.222.5 &> /dev/null ]

until [ $nas = "1" ];do
python wol.py
sleep 2
nas=[ping -c 1 192.192.168.222.5 &> /dev/null ]
done

wol.py — это скрипт Марка Балмара, который отправляет пакет wol
#!/usr/bin/env python
#coding: utf8

# Wake-On-LAN
#
# Copyright (C) 2002 by Micro Systems Marc Balmer
# Written by Marc Balmer, [email protected], http://www.msys.ch/
# Modified by saarnu for nerdoskop.wordpress.com
# This code is free software under the GPL

import struct, socket, time, os

def WakeOnLan(ethernet_address):

# Construct a six-byte hardware address

addr_byte = ethernet_address.split(':')
hw_addr = struct.pack('BBBBBB', int(addr_byte[0], 16),
int(addr_byte[1], 16),
int(addr_byte[2], 16),
int(addr_byte[3], 16),
int(addr_byte[4], 16),
int(addr_byte[5], 16))

# Build the Wake-On-LAN "Magic Packet"...

msg = '\xff' * 6 + hw_addr * 16

# ...and send it to the broadcast address using UDP
time.sleep(5)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(msg, ('
', 9))
s.close()

WakeOnLan('C8:60:00:6D:CF:54') # MAC-Adresse der DiskStation

Я написал аналогичный код в PowerShell, это было намного проще, я буквально пытаюсь скопировать его или перевести в bash.
$NAS = test-connection -count 1 -quiet 192.168.222.5
if ($NAS -like "False"){
do
{
$Mac = "C8:60:00:6D:CF:54"
$MacByteArray = $Mac -split "[:-]" | ForEach-Object { [Byte] "0x$_"}
[Byte[]] $MagicPacket = (,0xFF * 6) + ($MacByteArray * 16)
$UdpClient = New-Object System.Net.Sockets.UdpClient
$UdpClient.Connect(([System.Net.IPAddress]::Broadcast),7)
$UdpClient.Send($MagicPacket,$MagicPacket.Length)
$UdpClient.Close()
Start-Sleep -s 5
$NAS = test-connection -count 1 -quiet 192.168.222.5
}
until
(
$NAS -like "True"
)
}


Подробнее здесь: https://stackoverflow.com/questions/417 ... until-loop
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»