【问题标题】:How to run shell script within shell script with fixed arguments如何在带有固定参数的 shell 脚本中运行 shell 脚本
【发布时间】:2018-10-21 17:43:48
【问题描述】:

我有一个简单的脚本,它围绕另一个脚本创建一个循环,并直接为该脚本提供参数和参数 - 由于脚本应该运行多个文件,因此循环开始发挥作用。我写它的方式目前不起作用,那么我应该如何附加这些参数?我对 bash 还很陌生,所以任何帮助都将不胜感激!

#!/bin/bash
SCRIPT_PATH="xx.sh"
for x in {001..031}; do
"$SCRIPT_PATH" /data/raw/"$x"_AE data/processed/"$x"_AE 5 --info
done

【问题讨论】:

  • 你的当前目录中有 xx.sh 吗?如果你做./xx.sh怎么办?
  • 请描述“它不工作”是什么意思。您收到的错误信息是什么?您可以使用bash -x yourscript.sh 跟踪您的脚本。
  • 尝试直接调用xx.sh,不要引用变量,所以xx.sh /data/raw/${x}_AE data/processed/${x}_AE 5 --info
  • 另外,把set -x放在#!/bin/bash之后
  • 非常感谢大家!我特别在 for 循环中加入了 cmets,因为错误在那里 - 现在它工作得很好!

标签: bash parameters


【解决方案1】:
  1. 您的脚本中可能存在语法问题,第一个路径以 '/' (/data/raw/...) 开头,所以它是绝对的,但不是第二个的情况数据/已处理/...;是故意的吗?

  2. 确保没有目录/路径问题(xx.sh 位于哪里?)

  3. 确保启动脚本的用户对 /data 目录和子目录具有访问权限

如果它解决了您的问题,请告诉我?

【讨论】:

  • 非常感谢您的帮助!我最终发现问题出在 for 循环中,在合并其他 cmets 后它运行良好。
  • 在 Stackoverflow 上,您可以将up-vote 提供给人们有用的答案以感谢他们,并从所有答案中选择correct answer 中的任何一个。
猜你喜欢
  • 2011-10-09
  • 2018-11-18
  • 2015-02-28
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多