2016-08-09 78 views
0

Der Zugriff auf Netzlaufwerk (UNC) aus dem Bash-Skript versuchen. Das Netzwerklaufwerk benötigt einen Benutzernamen und ein Passwort. i Kann auf UNC zugreifen, indem ich einige einzelne Befehle wie CD, net verwenden. Kann jedoch nicht von einem Skript ausgeführt werden. folgt unten beschriebenen Schritte 1) unter Verwendung von unter Befehl von Befehl das Laufwerk zu Laufwerk x Montieren: net use x: \\\\Server_name\\Directory /user:users pass/PERMANENTE: JA Ergebnis: Sucess montiert x Antriebs 2) test.shkann nicht auf UNC-Laufwerk von Bash Script zugreifen. Sh

#!/bin/bash 
ls /cygdrive/x 
count_node1 = cat a.log b.log.1 v.log.2 |grep "&&&&" | sort -k1,2 | grep -c 'word' 
#count_node1="got it" 
echo helloworld 
echo $count_node1 
#end 

Ergebnis: helloworld : keine solche Datei oder das Verzeichnis/x count_node1: Befehl nicht

3) Weitere gefunden, es funktioniert perfekt, wenn ich jede Zeile von Cygwin einzeln ausgeführt werden.

versucht Bash Profil zum ersten Mal wirklich verwirrt.

+0

probiere 'count_node = $ (grep '&&&&' a.log b.log .... | sortieren ... | grep ..)'. Viel Glück. – shellter

Antwort

0

Siehe Syntax Ihrer Shell (bash). Richtig:

count_node1=$(cat a.log b.log.1 v.log.2 |grep "&&&&" | sort -k1,2 | grep -c 'word') 

oder

count_node1=$(grep '&&&&' a.log b.log.1 v.log.2 |sort -k1,2 | grep -c 'word') 
+0

: Nicht sicher, was Sie mit "Siehe Syntax der Shell" meinen, aber nur "csh" erlaubt Leerzeichen um das Zeichen "=" (und nur bei Verwendung von 'set var = val'). Für 'bash, ksh, sh, zsh usw.' sind Variablenzuweisungen' varName = "value" '. Lernen Sie, Ihre Antworten zu testen, bevor Sie sie veröffentlichen. Kann nicht so wie es ist. Viel Glück für jeden. – shellter

+0

Danke für die Optimierung der Syntax. Kannst du mir beim Zugriff auf den UNC-Pfad (// Server/Ordner) vom Shell-Skript helfen? Der UNC-Pfad benötigt LDAP-Anmeldeinformationen für den Zugriff auf das Laufwerk. –

+0

Danke # @ shelter. Korrigiere einfach ein Problem der Frage, ohne es selbst zu tun. – Tom

0

Die Reihenfolge Materie mit net use:

net use x: \\\\Server_name\\Directory pass /user:users

+0

Net-Verwendung funktioniert gut, aber ich kann nicht aus dem Shell-Skript zugreifen. aber der einzelne Befehl wie ls/cygdrive/x oder cd cygdrive/x funktioniert von cygwin ternal, aber nicht von .sh Datei warum? –

0

Entfernen Sie den Wagenrücklauf Zeichen von dem Enden des Skripts Linie, i. e. Speichern Sie es in unix anstelle von dos Dateiformat.