2016-08-09 14 views
0

bashスクリプトからネットワークドライブ(UNC)にアクセスしようとしています。ネットワークドライブにはユーザー名とパスワードが必要です。 i CD、net useなどの個々のコマンドを実行してUNCにアクセスできます。ただし、スクリプトから実行することはできません。 は以下以下 コマンドからのコマンドの下に使用してX駆動するドライブをマウント) ステップ1:net use x: \\\\Server_name\\Directory /user:users pass/PERSISTENT:YES 結果:のhelloWorld :成功事例のは、X駆動 2)test.shBashスクリプトからUNCドライブにアクセスできない.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 

結果マウント:そのようなファイルやディレクトリ/ X count_node1ません:コマンド

3が見つかりません)また、私は個別のCygwinから各ラインを実行した場合、それは完全に働いています。

初めてbashプロファイルを試してみると本当に混乱します。

+0

'count_node = $(grep '&&&&' a.log b.log .... | sort ... | grep ..)'を試してください。がんばろう。 – shellter

答えて

0

シェルの構文(bash)を参照してください。正しい:ネット使用と

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

または

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

:「あなたのシェルの構文を見てください」とは何を意味するのかは不明ですが、 'csh'だけが' = '記号の周りにスペースを許します(そして' set var = val'を使うときだけ)。 'bash、ksh、sh、zsh、etc'の場合、変数assingmentは' varName = "value" 'です。投稿する前にあなたの答えをテストする方法を学んでください。これをそのままアップvoteできません。皆さんお元気で。 – shellter

+0

構文を最適化していただきありがとうございます。シェルスクリプトからUNCパス(// server/folder)へのアクセスを手伝ってもらえますか? UNCパスには、ドライブにアクセスするためのLDAP資格情報が必要です。 –

+0

Thanks#@ shellter。それを自分で実行することなく、問題の1つの問題を修正してください。 – Tom

0

順事項:

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

+0

ネットの使用は問題ありませんが、シェルスクリプトからアクセスできません。 ls/cygdrive/xやcd cygdrive/xのような個々のコマンドは、cygwin terninalからは動作しますが、.shファイルからは動作しません。なぜですか? –

0

私は、スクリプトの線の端部からキャリッジリターン文字を削除します。 e。 dosファイル形式の代わりにunixに保存してください。

関連する問題