python with echo

MRAB python at mrabarnett.plus.com
Wed Nov 11 21:49:54 EST 2009


hong zhang wrote:
> List,
> 
> I have a question of python using echo.
> 
> POWER = 14
> return_value = os.system('echo 14 > /sys/class/net/wlan1/device/tx_power')
> 
> can assign 14 to tx_power
> 
> But 
> return_value = os.system('echo $POWER > /sys/class/net/wlan1/device/tx_power')
> 
> return_value is 256 not 0. It cannot assign 14 to tx_power.
> 
> What problem is it?
> 
> os.system("echo $POWER") returns 0 but
> os.system("echo $POWER > /sys/class/net/wlan1/device/tx_power") returns 256.
> 
Did you think that you could say:

     POWER = 14
     return_value = os.system('echo $POWER > 
/sys/class/net/wlan1/device/tx_power')

in a Python script and that would do the same as:

     return_value = os.system('echo 14 > 
/sys/class/net/wlan1/device/tx_power')

That won't work because 'POWER' exists only in Python and 'echo' is
being run in the (Linux?) shell.

You could try creating the command-line and then passing it to 'system':

     return_value = os.system('echo %s > 
/sys/class/net/wlan1/device/tx_power' % POWER)



More information about the Python-list mailing list