Szkriptek: Python, Perl, Bash, ...

[megoldva]basic /bin/bash help.

Sziasztok!

Rendszer:
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)
debian jessie

Az alábbi szkriptben nem sikerül összeragasztani a stringeket. A feladat annyi lenne, hogy van egy lista fájl list1 amiben fájlnevek vannak kiterjesztés nélkül
fáj lista:
# cat list1

i80qcb2m03m95d0a24a8kexk
i80s0rz603m95d0a24eo5cx0

A szkriptnek kéne ráragasztania a kiterjesztést illetve elé rakni az elérési útvonalat.
A szkript:
# cat mklist.sh

#!/bin/bash
NFS="/nfs3/www-data/"
EXT=".mp4"
for I in `cat list1`; do
J=$NFS$I$EXT
echo $J
done

# ./mklist.sh

.mp43/www-data/i80qcb2m03m95d0a24a8kexk
.mp43/www-data/i80s0rz603m95d0a24eo5cx0

Kicsit módosítottam a szkriptet, azt hittem a "."-al van baja, de még mindig nem értem mi történik:
új szkript:
#cat mklist.sh

#!/bin/bash
NFS="/nfs3/www-data/"
EXT="mp4"
for I in `cat list1`; do
J="$NFS"
echo $J
J+="$I"
echo $J
J+="$EXT"
echo $J
done

Az eredmény változatlan:
# ./mklist.sh

/nfs3/www-data/
/nfs3/www-data/i80qcb2m03m95d0a24a8kexk
mp4s3/www-data/i80qcb2m03m95d0a24a8kexk
/nfs3/www-data/
/nfs3/www-data/i80s0rz603m95d0a24eo5cx0
mp4s3/www-data/i80s0rz603m95d0a24eo5cx0

A feladat megoldásában szeretnék segítséget kérni. Előre is köszi mindenkinek.

megoldás:
( 1soproni | 2015. május 7., csütörtök - 7:55 )
( kallo | 2015. május 7., csütörtök - 8:05 )

warning: here-document at line 12 delimited by end-of-file

Üdv,

Az alábbi hibával mit tudok kezdeni?

./check_hp_fans.sh: line 14: warning: here-document at line 12 delimited by end-of-file (wanted `all_required_binaries')
No proper SNMP response or SNMP timeout. Check host or community string

check_hp_fans.sh: http://pastebin.com/ct4sHNzP

Előre is köszi

IP cim csere host fileban

Sziasztok!

Egy egyszeru feladatom van es nem birok vele. Van az alabbi scriptem:

#!/bin/sh
SERVER=$1;
IP="127.0.0.1";
LINFILE="/etc/hosts";

sed -i 's/'$IP'/'$SERVER'/g' $LINFILE;

exit 0

A lenyeg a host fileban a 127.0.0.1 reszt kell kicserelni a bejovo argumentummal.
Vegig bongesztem a googlet es ami volt hasonlo megoldas ra en kiprobaltam, de vagy "undefined label", "extra character at the end of h command" vagy "rename" hibt kapok, de nem ertem miert.
Valaki elmagyarazna mi a hiba?

Koszonom!

perl tömb és lista félreértés

van ez a kód és nem értem miért lett az egész 'qq' lista a tömb[0] eleme és miért nem 0,1,2,3
próbáltam split szétszedni de nem ment. A ref() függvény meg semmivel sem tért vissza.

Tud valaki segíteni?
1) hogy lehet a tömböt 'normálisan' (0,1,2,3) feltölteni? - Válasz meg van, qw és nem qq
2) valamint hogyan lehet szétkapni a listát elemeire? Szóval hogy ha van egy string pl egy qq-ból akkor azt hogy lehet elemeire bontani?


#!/usr/bin/env perl
use warnings;
use strict;

my @reversed = ();
my @lists = qq( one two three four);
foreach my $string (@lists)
{ push @reversed, scalar (reverse $string); }

print @reversed,"\n";
print $reversed[0],"\n"

ruof eerht owt eno
ruof eerht owt eno

Tkinter resize

Megint elővettem a Tkintert, hogy ismerkedjek vele. (Egyszer már belebuktam vagy egy éve :)) Akkor valahonnan letöltöttem egy mintát, amin egy frame-ben van editálható szövegmező, gombok, beviteli ablak, szóval efféle alapdolgok, hogy piszkálgathassam.
Akkor is azon buktam meg, hogy ez a frame átméretezhető volt ugyan alapból, de a benne levő szövegmező ugyanakkora méretű maradt és így nagyon gáz.
1. Nem találok megfelelő metódust hozzá: resize vagy hasonló szinonimákat keresek. Förmedjetek rám, hogy nem is úgy kell, csak akkor hogyan?
2. A .grid használatával nem saját magam akadályozom az átméretezhetőséget?

Szerk.: Hogy ne csak a levegőbe beszéljek, az ide vágó részlet:

root = Tk()
root.title("System beta version")
root.usrtext = Text(root, bg = "light yellow", fg = "black",relief=SUNKEN)
root.usrtext.grid(row=0, columnspan=16, rowspan=2, sticky=W+E+N+S, padx=5, pady=5)
root.fname = StringVar()
root.fname = ""
filestring = StringVar()
root.last_saved_text=StringVar()
root.last_saved_text=""
root.compiled_text=StringVar()
root.compiled_text=""
cimke1 = Label(root, text="Variable:").grid(row=3, sticky=W, padx=5)
cimke2 = Label(root, text="Value:").grid(row=4, sticky=W, padx=5)
cimke3 = Label(root, text="Subroutine:").grid(row=5, sticky=W, padx=5)
cimke4 = Label(root, textvariable=filestring, font=("Arial Black", 10)).grid(row=6, columnspan=16, padx=5, sticky=W)
mezo1 = Entry(root, bg = "light cyan", fg = "black", relief=SUNKEN)
mezo1.grid(row=3, column=1, sticky=W)
mezo2 = Entry(root, bg = "light cyan", fg = "black", relief=SUNKEN)
mezo2.grid(row=4, column=1, sticky=W)
mezo3 = Entry(root, bg = "light cyan", fg = "black", relief=SUNKEN)
mezo3.grid(row=5, column=1, sticky=W)
gomb1 = Button(root, text='Read', height=1, width=4, relief=RAISED, command=readvar)
gomb1.grid(row=3, column=2)
gomb2 = Button(root, text='Write', height=1, width=4, relief=RAISED, command=writevar)
gomb2.grid(row=4, column=2)
gomb3 = Button(root, text='Execute', height=1, width=4, relief=RAISED, command=executesub)
gomb3.grid(row=5, column=2)
gomb4 = Button(root, text='Run / load', height=1, width=10, relief=RAISED, command=compile)
gomb4.grid(row=4, column=14)

app = App(root)

i=DeviceExplore()
errorstring=DeviceVersnr()

if (i==0):
errorstring=DeviceVersnr()
if showerror('Error !','There is no connection\n%s.' % errorstring):
root.destroy()

if (i==-1):
errorstring='Chip was found but cannot be claimed'
if showerror('Error !','%s' % errorstring):
root.destroy()
if (i>1):
errorstring='Conflict: more than one chip was found'
if showerror('Error !','%s' % errorstring):
root.destroy()

if (i==1):
DeviceSetMyBuffer(root.usrtext.get(1.0,END))

root.mainloop()

[MEGOLDVA]perl változók hatóköre

hello

ezen kódrészlet nem ad vissza nekem semmit pedig szerintem kéne:
my $var = '';
$var++ while ($var lt 10 );
print $var until ($var-- gt 0);

mi lehet a gond? a $var az elején globális változó azt frissíti az első $var++ növeli majd a második $var-- pedig csökkenti.
vagy tévedek és a második ciklus is az üres stringet látja?
ez alapján: http://perlmaven.com/scope-of-variables-in-perl (Variable scope: visible everywhere)
menni e kéne.

UPDATA
A megoldás:
my $var = 0;
print "$var\n";
$var++ while ($var < 10 );
print $var."\n" until ($var-- == 0);