質問編集履歴
3
エラー内容追加しました。
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
スクリプトの中身と実行エラーの内容を修正しました。
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
|
31
|
+
+ eval echo '$TEST1'
|
32
|
-
++
|
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
エラー内容や一部スクリプトを修正しました。
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
|
-
|
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
|
+
---
|