在一次旅行中,有几个站点(一个站点=一个地址,其中一个或多个订单被加载或交付),按特定顺序.例如:
Trip A
Trip_order Action Place Ordernumber
10 Load Paris 394798
20 Load Milan 657748
30 UnLoad Athens 657748
40 Unload Thessaloniki 394798
50 Load Thessaloniki 10142
60 Load Thessaloniki 6577
70 Unload Athens 6577
80 Unload Athens 10412
90 Load Thessaloniki 975147
100 Unload Paris 975147
Run Code Online (Sandbox Code Playgroud)
我希望按行程顺序查看具体的停靠点:
Load Paris
Load Milan
Unload Athens
Unload Thessaloniki
Load Thessaloniki
Unload Athens
Load Thessaloniki
Unload Paris
Run Code Online (Sandbox Code Playgroud)
我确实看过这个,但如果我这样做,我只能卸载雅典,卸载塞萨洛尼基并加载塞萨洛尼基一次.
我该如何解决这个问题?
编辑:11:11(UTC +01:00)更具体一点:这些是提供此信息的表格:
Trips
Trip_ID
100001
100002
100003
....
Actions
Trip_ID Action MatNr …Run Code Online (Sandbox Code Playgroud) 我有几十个脚本,都在不同的目录中.(导出/扩展的Talend工作)
此时每个作业都有1或2个脚本,从相同的行开始,最重要的一行:
CD ***path-to-script***
Run Code Online (Sandbox Code Playgroud)
和几行来设置Java路径并启动作业.
我想创建一个脚本,它将从所有这些脚本运行.例如:
/scripts/talend.sh
Run Code Online (Sandbox Code Playgroud)
在所有talend脚本中,第一行将运行/scripts/talend.sh,这些脚本的运行位置的一些示例:
/talend-job1_0.1/talend-job1_0.1/talend-job1/talend-job1.sh
/talend-task2_0.1/talend-task2_0.1/talend-task2/talend-task2.sh
/talend-job3_0.1/talend-job3_0.1/talend-job3/talend-job3.sh
Run Code Online (Sandbox Code Playgroud)
如何确定/scripts/talend.sh从何处开始,因此我可以从内部CD到该路径/scripts/talend.sh.
Talend脚本不是从目录本身运行,而是从cronjob或不同的用户主目录运行.
编辑:问题被标记为重复,但从内部获取Bash脚本的源目录不是100%回答我的问题.问题是: - 从不同的脚本调用基本脚本 - 这些不同的脚本可以从命令行运行,带有或不带符号链接. - $ 0,$ BASH_SOURCE和pwd都做了一些事情,但没有提到的解决方案涵盖了所有的困难.
例:
/scripts/talend.sh
Run Code Online (Sandbox Code Playgroud)
在这个脚本中,我想配置Java的$ PATH和$ HOME_PATH,并将CD配置到Talend作业所在的位置.(它是一个包,所以脚本必须从该位置运行).
例如,工作路径是:
/u/talend/talendjob1/sub../../talendjob1.sh
/u/talend/talendjob2/sub../../talendjob2.sh
/u/talend/talendjob3/sub../../talendjob3.sh
Run Code Online (Sandbox Code Playgroud)
从TMS应用程序运行多个作业.此应用程序无法使用whol名称运行这些脚本(对于long,名称只能是6长),因此在不同的位置我有符号链接:
/u/tms/links/p00001 -> /u/talend/talendjob1/sub../../talendjob1.sh
/u/tms/links/p00002 -> /u/talend/talendjob1/sub../../talendjob2.sh
/u/tms/links/p00003 -> /u/talend/talendjob1/sub../../talendjob3.sh
/u/tms/links/p00004 -> /u/talend/talendjob1/sub../../talendjob4.sh
Run Code Online (Sandbox Code Playgroud)
我想你会对复杂性进行概述,为什么我只想要一个基本的talend脚本,在那里我可以留下所有基本内容.但我只能这样做,如果我知道Talend脚本的来源,因为我必须要开始那个talend工作.