Vraag : Het zuiveren van de hulp perl manuscript

Hallo hebben de deskundigen,

I het volgende manuscript Perl geschreven, maar het werkt niet en ik kan niet zien waarom:

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
# bepalen variabelen
$user_remote_file='root@ 1.1.1.1: /usr/local/test/user.txt';
$local_path= " /usr/local/test/ „;
$local_file= " user.txt ";
$user_list=$local_path. $local_file;
$do niet _create=0;

# scp dossier van levende knoop aan lokale testfolder
systeem („scp“, $user_remote_file, $local_path);

# open gebruikerslijst voor lezing
open (user_list) of matrijs („kon dossier geen $user_list openen! “);

# lijn voor elke gebruiker in lijst
terwijl ($user = ) {
	#print „$user“;
	# open passwddossier om te controleren of er gebruiker op dit systeem bestaat
	open DOSSIER, „) {# lijn voor elke lijn in passwddossier
		#print „in terwijl lijn voor gebruiker $user“;
		#print $passwd_line;
		# als de gebruiker bestaat
		als ($passwd_line =~ m/$user/) {
			$do niet _create=1;
			druk „$user er bestaat reeds op systeem! \ n“;
		}
	}
	# als deze gebruiker reeds geen rekening op de server heeft
	als ($do niet _create==0) {
		# cre�ër een rekening
		systeem („useradd $user“);
		$do niet _create=0;
	}
manuscript 


The is verondersteld om /etc/passwd naar de gebruikers in het dossier van dossieruserlist te zoeken - dit is een tekstdossier met een lijst van gebruikers, één op elke lijn.

When stel ik het manuscript in werking, werkt alles, maar gaat het nooit in als ($do niet _create) de sectie zo probeert om gebruikers te ontspannen die reeds op het systeem zijn. Ik dacht dat mijn regexsyntaxis voor het zoeken van een koord correct was, maar blijkbaar zijn niet ..... ingestemde met hulp

Any!

George

Antwoord : Het zuiveren van de hulp perl manuscript

$user zou een \ n of \ r \ n bij zijn staart kunnen hebben.
Voeg vóór lijn 16: toe

chomp ($user);
Andere oplossingen  
 
programming4us programming4us