我有一个已经使用了一段时间的Bash脚本,名为launch.sh
。该脚本启动了一组过程,该脚本如下所示:
for ch in job_lists/*; do
merlin mkt -log 30 -rollList $ch > "output_$(basename $ch)" &
done
该脚本从job_lists
获取一组6个作业,然后执行第2行,其中调用了另一个脚本merlin
。启动脚本时,将以下内容返回到控制台:
我看起来它可以完成6个工作(因此有6行输出),但是我认为找不到merlin。...
我刚刚将环境移动到新笔记本电脑上,并复制了所有脚本。 merlin脚本在那里,我尝试了chmod +x launch.sh
和chmod +x merlin.sh
,但没有成功。我什至尝试在脚本顶部添加#!/bin/bash
,但未成功。
merlin位于:
我已经检查了我的PATH(请参阅下文),我可能错过了一些东西,但看起来却存在到merlin的PATH(home / scoleman / user / bin)。
答案 0 :(得分:3)
您必须指定脚本的路径。
尝试一下:
for ch in job_lists/*; do
./merlin.sh mkt -log 30 -rollList $ch > "output_$(basename $ch)" &
done
答案 1 :(得分:2)
这意味着您的merlin.sh脚本不在执行用户的PATH中。将脚本添加到路径已指向的位置,将脚本所在的目录添加到PATH,或从launch.sh脚本中指定脚本的完整路径。
答案 2 :(得分:2)
确保merlin拥有执行权限,如果没有设置的话,
chmod + x merlin
请确保merlin脚本位于与launch.sh相同的位置,如果未提供merlin命令的正确路径,则
set_index(rec_df.columns[0])
或将merlin位置添加到PATH环境变量中。
rec_df = dfs_list[0].set_index(dfs_list[0].columns[0])
for dataframe in range(len(dfs_list)-1):
rec_df = pd.merge(left=rec_df, right=dfs_list[dataframe+1].set_index(dfs_list[dataframe+1].columns[0]),
left_index=True, right_index=True,
how='outer')
答案 3 :(得分:1)
无需扩展即可运行它。
答案 4 :(得分:0)
$(which merlin)
会显示什么?
如果获得正面结果,请将merlin
替换为$(which merlin)
。如果没有,请使用另一种方法找到其位置并在脚本中使用它。