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

質問編集履歴

3

エラー内容追加しました。

2020/04/14 12:13

投稿

ITOMO5963
ITOMO5963

スコア98

title CHANGED
File without changes
body CHANGED
@@ -4,8 +4,13 @@
4
4
  ご教示お願いいたします。
5
5
  【理想の出力】
6
6
  --> apple --> * * * --> grape
7
+ whil文で変数にしている以下の部分がうまく処理できていないみたいです。
8
+ ```
9
+ eval TEST$x="'--> '${line}"
10
+ ```
7
11
 
8
12
 
13
+
9
14
  【demo.sh】
10
15
  ```
11
16
  #!bin/bash

2

スクリプトの中身と実行エラーの内容を修正しました。

2020/04/14 12:13

投稿

ITOMO5963
ITOMO5963

スコア98

title CHANGED
File without changes
body CHANGED
@@ -14,7 +14,7 @@
14
14
  while read line
15
15
  do
16
16
  eval TEST$x="'--> '${line}"
17
- eval echo$TEST$x >> /tmp/test.txt
17
+ eval echo $TEST$x >> /tmp/test.txt
18
18
  x=$(( x + 1 ))
19
19
  done < demo.txt
20
20
 
@@ -28,14 +28,22 @@
28
28
  + read line
29
29
  + eval 'TEST1='\''--> '\''apple'
30
30
  ++ TEST1='--> apple'
31
- + eval 'echo$TEST1'
31
+ + eval echo '$TEST1'
32
- ++ 'echo-->' apple
32
+ ++ echo '-->' apple
33
- demo.sh: 行 7: echo-->: コマンドが見つかりません
34
33
  + x=2
35
34
  + read line
36
35
  + eval 'TEST2='\''--> '\''* * *'
37
36
  ++ TEST2='--> *'
38
37
  ++ demo.sh demo.txt test2.sh test3.sh test.log #カレントディレクトリにあるファイルやフォルダ名が並んでいる
38
+ demo.sh: 行 6: test.log: コマンドが見つかりません
39
+ + eval echo '$TEST2'
40
+ ++ echo
41
+ + x=3
42
+ + read line
43
+ + eval 'TEST3='\''--> '\''grape'
44
+ ++ TEST3='--> grape'
45
+ + eval echo '$TEST3'
46
+ ++ echo '-->' grape
39
47
  ...
40
48
  ```
41
49
  ---

1

エラー内容や一部スクリプトを修正しました。

2020/04/14 12:09

投稿

ITOMO5963
ITOMO5963

スコア98

title CHANGED
File without changes
body CHANGED
@@ -1,17 +1,11 @@
1
1
  #実現したいこと
2
2
  シェルスクリプト(demo.sh)で特定のファイル(demo.txt)を1読み込んで1行ずつ読み込んで```logger```をしたいと思っていますが、
3
3
  特定ファイルの中に「* * *」を記載された箇所がうまく読み込んで```logger```できないです。
4
-
4
+ ご教示お願いいたします。
5
5
  【理想の出力】
6
6
  --> apple --> * * * --> grape
7
7
 
8
- 【demo.txt】
8
+
9
- ```
10
- apple
11
- * * *
12
- grape
13
- ```
14
- ---
15
9
  【demo.sh】
16
10
  ```
17
11
  #!bin/bash
@@ -22,8 +16,33 @@
22
16
  eval TEST$x="'--> '${line}"
23
17
  eval echo$TEST$x >> /tmp/test.txt
24
18
  x=$(( x + 1 ))
25
- done
19
+ done < demo.txt
26
20
 
27
21
  LOGGER=`cat /tmp/test.txt | tr "\n" "" ";echo`
28
22
  logger $LOGGER
29
- ```
23
+ ```
24
+
25
+ sh -x demo.shで実行すると
26
+ ```
27
+ + x=1
28
+ + read line
29
+ + eval 'TEST1='\''--> '\''apple'
30
+ ++ TEST1='--> apple'
31
+ + eval 'echo$TEST1'
32
+ ++ 'echo-->' apple
33
+ demo.sh: 行 7: echo-->: コマンドが見つかりません
34
+ + x=2
35
+ + read line
36
+ + eval 'TEST2='\''--> '\''* * *'
37
+ ++ TEST2='--> *'
38
+ ++ demo.sh demo.txt test2.sh test3.sh test.log #カレントディレクトリにあるファイルやフォルダ名が並んでいる
39
+ ...
40
+ ```
41
+ ---
42
+ 【demo.txt】
43
+ ```
44
+ apple
45
+ * * *
46
+ grape
47
+ ```
48
+ ---