我正在使用ubuntu 14.10
我无法在我的脚本文件中找到常用命令,这些命令在几天后就完美运行了。我现在必须为它们提供完整的路径。
/bin/mkdir "beta1"
/usr/bin/npm install "$COMMAND"
应该是这样的:
mkdir "beta1"
npm install "$COMMAND"
我甚至尝试在我的脚本中添加source~ / .profile,但没有任何帮助。
答案 0 :(得分:2)
如果您在评论中发布的路径是路径的verbatim
复制/粘贴,则问题是您的路径中嵌入了非ASCII字符。这很可能是由于使用Windows中的编辑器(或非文本编辑器,例如OpenOffice)编辑了路径,该编辑器将非标准字符替换为常规ASCII值。查看PATH的hexdump会显示问题:
$ hexdump -C -n 233 pathprob.sh
00000000 23 21 2f 62 69 6e 2f 62 61 73 68 0a 0a 50 41 54 |#!/bin/bash..PAT|
00000010 48 3d 2f 75 73 72 2f 6c 6f 63 61 6c 2f 73 62 69 |H=/usr/local/sbi|
00000020 6e 3a 2f 75 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e |n:/usr/local/bin|
00000030 3a 2f 75 73 72 2f 73 62 69 6e 3a 2f 75 73 72 2f |:/usr/sbin:/usr/|
00000040 62 69 6e 3a 2f 73 62 69 6e 3a 2f 62 69 6e 3a 2f |bin:/sbin:/bin:/|
00000050 75 73 72 2f 67 61 6d 65 73 3a 2f 75 73 72 2f 6c |usr/games:/usr/l|
00000060 6f 63 e2 80 8c e2 80 8b 61 6c 2f 67 61 6d 65 73 |oc......al/games|
00000070 3a 2f 75 73 72 2f 73 62 69 6e 2f 6e 6f 64 65 3a |:/usr/sbin/node:|
00000080 2f 75 73 72 2f 6c 69 62 2f 6a 76 6d 2f 6a 61 76 |/usr/lib/jvm/jav|
00000090 61 2d 37 2d 6f 72 61 63 6c 65 2f 62 69 6e 3a 2f |a-7-oracle/bin:/|
000000a0 75 73 72 2f 6c 69 62 2f 6a 76 6d 2f 6a 61 76 61 |usr/lib/jvm/java|
000000b0 2d 37 2d 6f 72 61 63 6c 65 e2 80 8c e2 80 8b 2f |-7-oracle....../|
000000c0 64 62 2f 62 69 6e 3a 2f 75 73 72 2f 6c 69 62 2f |db/bin:/usr/lib/|
000000d0 6a 76 6d 2f 6a 61 76 61 2d 37 2d 6f 72 61 63 6c |jvm/java-7-oracl|
000000e0 65 2f 6a 72 65 2f 62 69 6e |e/jre/bin|
000000e9
注意usr/loc......al/games
的显示方式。 java-7-oracle......
存在类似问题。这有效地破坏了您的PATH
变量。两个地方e2 80 8c e2 80 8b
的腐败字符都相同。它们代表e2 80 8c
一个Unicode ⁌
和e2 80 8b
一个Unicode ⁋
。
解决方案 - 将您的路径复制到文本编辑器。使用新重新设定的local/
删除/替换local/
并为/usr/lib/jvm/java-7-oracle/db/bin
执行相同的操作
答案 1 :(得分:0)
使用PATH作为变量名称是个问题。我在某个时候压倒了它。