2
\$\begingroup\$

This script creates an adhoc network using hostapd. I have tested it and seems to work reliably. I am new to linux networking and not sure if this is a recommended way to create an adhoc network this way.

#!/bin/bash
#set -x
DEVICE=wlan0
CONFIG_FILE=./hostapd.conf
ConfigureDevice()
{
    if ! sudo iwconfig 2>/dev/null | grep $DEVICE >/dev/null;then
        echo $DEVICE not found!
        exit -1
    fi

    #Ensure config file exists
    if [ ! -e $CONFIG_FILE ]
    then
        echo "Can't find hostapd config file"
        exit -1
    fi

    sudo service isc-dhcp-server stop
    sudo pkill hostapd
    sudo ifdown  $DEVICE 
    sudo ifconfig $DEVICE up 192.168.1.100 netmask 255.255.255.0
    sudo service isc-dhcp-server start
    sudo hostapd -B $CONFIG_FILE

}
cd ${0%/*}  #make current working directory the directory of the bash script
ConfigureDevice
\$\endgroup\$
1
\$\begingroup\$

Not answering your actual question, but offering a couple of code comments:

use cd -- "$(dirname -- "$0")"

  • if the script is in the PATH and someone just enters the script name, you will try to cd to the (probably non-existant) "script name" directory in the current dir.

use grep -q $DEVICE

  • that is a bit speedier since, if it finds a match, it exits immediately instead of having to read the entire input looking for all matches.
|improve this answer|||||
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.