【问题标题】:changing directory with BASH script not working使用 BASH 脚本更改目录不起作用
【发布时间】:2013-01-09 21:12:18
【问题描述】:

我有一个脚本文件(“测试”,没有文件名),其中包含:

cd /userdata/waf/Template
iaprod -python myscript.py>Outputlog
echo "hello"

当我进入命令窗口时,我输入以下内容并得到这个输出:

-bash-3.00$ chmod 775 testing
-bash-3.00$ ./testing
: No such file or directorydata/acct/waf/Template
<<Starting on sim1>>
hello

所以由于某种原因,第一行中的更改目录命令不起作用。但是,最后两行中的 python 脚本和 echo 工作正常。唯一的问题是我需要在正确的目录中运行 python 脚本。

任何想法为什么 cd 不能解决所有问题?如果我直接将代码逐字输入命令行,一切正常。

【问题讨论】:

  • 您在什么操作系统上以及如何执行脚本?如果是 Makefile,除非您使用括号对命令进行分组,否则该目录将不会保留。

标签: python unix batch-file directory


【解决方案1】:

检查cd 命令行末尾的杂散回车字符(ASCII 代码点 13)。乱码错误消息表明存在一个。

shell 脚本中的行(以及除了 Internet 协议中的文本之外的几乎所有其他内容)必须以 ASCII LF(代码点 10)结尾,而不是 CR+LF。

【讨论】:

  • 嗯,我尝试在脚本文件上使用 dos2unix,但它仍然给我同样的错误。您可以推荐其他方法来解决此问题吗?
  • 您能否生成脚本的十六进制转储(od -tx1 或类似文件)?该行应以 74 65 0a 结尾(ASCII:“t”“e”NL)。我这样说是因为: No such file or directory 覆盖了它出现的行的开头的错误消息真的看起来像一个流浪的CR。
猜你喜欢
  • 1970-01-01
  • 2019-01-04
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 2012-11-25
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多