【发布时间】:2021-05-02 17:15:02
【问题描述】:
我有以下文件.dev
1 DEVICES {
2 GLOBAL-CONFIG {
3 framerate = "20000";
4 subframes = "0";
5 max_consec_timeouts = "10";
6 max_total_timeouts = "1000";
7 schedmode = "Standard";
8 clustermode = "Standard";
9 }
10 IO-DEVICES {
11 }
12 COMPUTING-DEVICES {
13 RT_WORKSTATION FDT-C-XM-0120 = {
14 hostname = "FDT-C-XM-0120";
15 ipaddress = "fdt-c-XM-0120.fdtel.exter";
16 DISPLAYS {
17 main = "FDT-C-XM-0120:0.0";
18 }
19 SCHEDPARAM {
20 active = "0";
21 framerate = "20000";
22 subframes = "0";
23 max_consec_timeouts = "10";
24 max_total_timeouts = "1000";
25 }
26 }
27
28 RT_HOST fdt-c-agx-0008 = {
29 hostname = "fdt-c-agx-0008";
30 ipaddress = "fdt-c-agx-0008";
31 SCHEDPARAM {
32 active = "0";
33 framerate = "20000";
34 subframes = "0";
35 max_consec_timeouts = "10";
36 max_total_timeouts = "1000";
37 }
38 }
39
40 # RT_HOST fdt-c-agx-0003 = {
41 # hostname = "fdt-c-agx-0003";
42 # ipaddress = "fdt-c-agx-0003.fdtel.exter";
43 # SCHEDPARAM {
44 # active = "0";
45 # framerate = "20000";
46 # subframes = "0";
47 # max_consec_timeouts = "10";
48 # max_total_timeouts = "1000";
49 # }
50 # }
51 }
52 }
在此文件中,文本部分 part 1 (from line 28 till 38) 和 part 2 (from line 40 till 50) 是用户在其中切换的部分。正如我们所见,第 2 部分已被注释掉,第 1 部分处于活动状态。
所以我正在尝试使用 bash 脚本自动执行该操作,使用户只输入他想要的部件号,而另一个被注释掉。这样用户就不能注释掉每一行。
# example
if [ "$userEntry" = "part2"]
then
deactivate part one by typing adding from line 28 till 38 and activate part 2 by removing the #
输出看起来像
1 DEVICES {
2 GLOBAL-CONFIG {
3 framerate = "20000";
4 subframes = "0";
5 max_consec_timeouts = "10";
6 max_total_timeouts = "1000";
7 schedmode = "Standard";
8 clustermode = "Standard";
9 }
10 IO-DEVICES {
11 }
12 COMPUTING-DEVICES {
13 RT_WORKSTATION FDT-C-XM-0120 = {
14 hostname = "FDT-C-XM-0120";
15 ipaddress = "fdt-c-XM-0120.fdtel.exter";
16 DISPLAYS {
17 main = "FDT-C-XM-0120:0.0";
18 }
19 SCHEDPARAM {
20 active = "0";
21 framerate = "20000";
22 subframes = "0";
23 max_consec_timeouts = "10";
24 max_total_timeouts = "1000";
25 }
26 }
27
28 # RT_HOST fdt-c-agx-0008 = {
29 # hostname = "fdt-c-agx-0008";
30 # ipaddress = "fdt-c-agx-0008";
31 # SCHEDPARAM {
32 # active = "0";
33 # framerate = "20000";
34 # subframes = "0";
35 # max_consec_timeouts = "10";
36 # max_total_timeouts = "1000";
37 # }
38 # }
39
40 RT_HOST fdt-c-agx-0003 = {
41 hostname = "fdt-c-agx-0003";
42 ipaddress = "fdt-c-agx-0003.fdtel.exter";
43 SCHEDPARAM {
44 active = "0";
45 framerate = "20000";
46 subframes = "0";
47 max_consec_timeouts = "10";
48 max_total_timeouts = "1000";
49 }
50 }
51 }
52 }
请注意,file.dev 中的行顺序不会改变。
我希望我能把我的问题说清楚并提前感谢
【问题讨论】:
-
只有一件事,用户怎么知道是part1还是part2启用了?
标签: bash shell command-line kernel