teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

スクリプト修正

2016/11/05 03:02

投稿

ynakano
ynakano

スコア1894

answer CHANGED
@@ -1,2 +1,36 @@
1
1
  ローカルに持ってきたいファイルがテキスト形式なら、sshでcatしてローカルにリダイレクトしてはどうでしょうか?
2
2
  バイナリの場合はちょっと思いつかないですが...
3
+
4
+ ###2016/11/5 12:00編集
5
+ ```ここに言語を入力
6
+ **main.sh**
7
+ #!/bin/bash
8
+
9
+ REMOTEFILE=`ssh user@host test.sh`
10
+
11
+ ssh user@host "cat ${REMOTEFILE}" > 【適当な書き出し先】
12
+ ```
13
+ ```ここに言語を入力
14
+ **test.sh**
15
+ #/bin/bash
16
+
17
+ if [ -e ${FILENAME} ]; then
18
+ echo >&2 -n "同名のファイルが既に存在します。上書きしてもよろしいですか?[yes/no]"
19
+ read answer
20
+
21
+ if [ "$answer" != "yes" ]; then
22
+ echo >&2 "上書きを行いません"
23
+ exit
24
+ fi
25
+ else
26
+ echo >&2 "新規作成"
27
+ fi
28
+
29
+ echo >&2 "開始"
30
+
31
+ find ... | awk ... > ${FILENAME}
32
+
33
+ echo >&2 "終了"
34
+
35
+ echo ${FILENAME}
36
+ ```

5

一旦撤回

2016/11/05 03:02

投稿

ynakano
ynakano

スコア1894

answer CHANGED
@@ -1,39 +1,2 @@
1
1
  ローカルに持ってきたいファイルがテキスト形式なら、sshでcatしてローカルにリダイレクトしてはどうでしょうか?
2
2
  バイナリの場合はちょっと思いつかないですが...
3
-
4
- ###2016/11/5 11:45編集
5
- ```ここに言語を入力
6
- **main.sh**
7
- #!/bin/bash
8
-
9
- REMOTEFILE=`ssh user@host test.sh`
10
-
11
- ssh user@host "cat ${REMOTEFILE}" > 【適当な書き出し先】
12
- ```
13
- ```ここに言語を入力
14
- **test.sh**
15
- #!/bin/bash
16
-
17
- #/bin/bash
18
-
19
- if [ -e ${FILENAME} ]; then
20
- echo >&2 -n "同名のファイルが既に存在します。上書きしてもよろしいですか?[yes/no]"
21
- read answer
22
-
23
- if [ "$answer" != "yes" ]; then
24
- echo >&2 "上書きを行いません"
25
- exit
26
- fi
27
- else
28
- echo >&2 "新規作成"
29
- fi
30
-
31
- echo >&2 "開始"
32
-
33
- find ... | awk ... > ${FILENAME}
34
-
35
- echo >&2 "終了"
36
-
37
- echo ${FILENAME}
38
-
39
- ```

4

スクリプト編集

2016/11/05 02:49

投稿

ynakano
ynakano

スコア1894

answer CHANGED
@@ -1,37 +1,39 @@
1
1
  ローカルに持ってきたいファイルがテキスト形式なら、sshでcatしてローカルにリダイレクトしてはどうでしょうか?
2
2
  バイナリの場合はちょっと思いつかないですが...
3
3
 
4
- ###2016/11/4 22:50編集
4
+ ###2016/11/5 11:45編集
5
5
  ```ここに言語を入力
6
6
  **main.sh**
7
+ #!/bin/bash
8
+
9
+ REMOTEFILE=`ssh user@host test.sh`
10
+
11
+ ssh user@host "cat ${REMOTEFILE}" > 【適当な書き出し先】
12
+ ```
13
+ ```ここに言語を入力
14
+ **test.sh**
15
+ #!/bin/bash
16
+
7
17
  #/bin/bash
8
18
 
9
19
  if [ -e ${FILENAME} ]; then
10
- echo -n "同名のファイルが既に存在します。上書きしてもよろしいですか?[yes/no]"
20
+ echo >&2 -n "同名のファイルが既に存在します。上書きしてもよろしいですか?[yes/no]"
11
- read answer
21
+ read answer
12
22
 
13
- if [ "$answer" != "yes" ]; then
23
+ if [ "$answer" != "yes" ]; then
14
- echo "上書きを行いません"
24
+ echo >&2 "上書きを行いません"
15
- exit
25
+ exit
16
- fi
26
+ fi
17
27
  else
18
- echo "新規作成"
28
+ echo >&2 "新規作成"
19
29
  fi
20
30
 
21
- echo "開始"
31
+ echo >&2 "開始"
22
32
 
23
- REMOTEFILE=`ssh user@host test.sh`
33
+ find ... | awk ... > ${FILENAME}
24
34
 
25
- echo "終了"
35
+ echo >&2 "終了"
26
36
 
27
- ssh user@host "cat ${REMOTEFILE}" > ${FILENAME}
28
- ```
29
- ```ここに言語を入力
30
- **test.sh**
31
- #!/bin/bash
37
+ echo ${FILENAME}
32
38
 
33
- # ${OUTFILE}はこのスクリプトで構築している
34
- find ... | awk ... > ${OUTFILE} 2> /dev/null
35
-
36
- echo ${OUTFILE}
37
39
  ```

3

時刻修正

2016/11/05 02:45

投稿

ynakano
ynakano

スコア1894

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  ローカルに持ってきたいファイルがテキスト形式なら、sshでcatしてローカルにリダイレクトしてはどうでしょうか?
2
2
  バイナリの場合はちょっと思いつかないですが...
3
3
 
4
- ###2016/11/4 22:40編集
4
+ ###2016/11/4 22:50編集
5
5
  ```ここに言語を入力
6
6
  **main.sh**
7
7
  #/bin/bash

2

シェルスクリプト修正

2016/11/04 13:54

投稿

ynakano
ynakano

スコア1894

answer CHANGED
@@ -1,8 +1,7 @@
1
1
  ローカルに持ってきたいファイルがテキスト形式なら、sshでcatしてローカルにリダイレクトしてはどうでしょうか?
2
2
  バイナリの場合はちょっと思いつかないですが...
3
3
 
4
- ###2016/11/4 20:45追記
4
+ ###2016/11/4 22:40編集
5
- これまで聞いた話を元に想定スクリプトを書いてみます。
6
5
  ```ここに言語を入力
7
6
  **main.sh**
8
7
  #/bin/bash
@@ -21,7 +20,7 @@
21
20
 
22
21
  echo "開始"
23
22
 
24
- ssh user@host "test.sh ${REMOTEFILE}"
23
+ REMOTEFILE=`ssh user@host test.sh`
25
24
 
26
25
  echo "終了"
27
26
 
@@ -31,7 +30,8 @@
31
30
  **test.sh**
32
31
  #!/bin/bash
33
32
 
33
+ # ${OUTFILE}はこのスクリプトで構築している
34
- find ... | awk ... > $1
34
+ find ... | awk ... > ${OUTFILE} 2> /dev/null
35
+
36
+ echo ${OUTFILE}
35
- ```
37
+ ```
36
- test.sh側でリダイレクトする前提です。
37
- リモートのファイル名をtest.shの引数として与えて、test.shでは引数"$1"としてリモートファイル名を取得しています。

1

スクリプト追記

2016/11/04 13:50

投稿

ynakano
ynakano

スコア1894

answer CHANGED
@@ -1,2 +1,37 @@
1
1
  ローカルに持ってきたいファイルがテキスト形式なら、sshでcatしてローカルにリダイレクトしてはどうでしょうか?
2
- バイナリの場合はちょっと思いつかないですが...
2
+ バイナリの場合はちょっと思いつかないですが...
3
+
4
+ ###2016/11/4 20:45追記
5
+ これまで聞いた話を元に想定スクリプトを書いてみます。
6
+ ```ここに言語を入力
7
+ **main.sh**
8
+ #/bin/bash
9
+
10
+ if [ -e ${FILENAME} ]; then
11
+ echo -n "同名のファイルが既に存在します。上書きしてもよろしいですか?[yes/no]"
12
+ read answer
13
+
14
+ if [ "$answer" != "yes" ]; then
15
+ echo "上書きを行いません"
16
+ exit
17
+ fi
18
+ else
19
+ echo "新規作成"
20
+ fi
21
+
22
+ echo "開始"
23
+
24
+ ssh user@host "test.sh ${REMOTEFILE}"
25
+
26
+ echo "終了"
27
+
28
+ ssh user@host "cat ${REMOTEFILE}" > ${FILENAME}
29
+ ```
30
+ ```ここに言語を入力
31
+ **test.sh**
32
+ #!/bin/bash
33
+
34
+ find ... | awk ... > $1
35
+ ```
36
+ test.sh側でリダイレクトする前提です。
37
+ リモートのファイル名をtest.shの引数として与えて、test.shでは引数"$1"としてリモートファイル名を取得しています。