bash - 在 shell/bash 脚本中找不到命令

标签 bash ubuntu

我正在使用 ubuntu 14.10

我无法在我的脚本文件中找到几天前运行良好的常用命令。我现在必须为它们提供完整的路径。

           /bin/mkdir "beta1"
           /usr/bin/npm install "$COMMAND"

应该是这样的:
           mkdir "beta1"
           npm install "$COMMAND"

我什至尝试在我的脚本中添加 source ~/.profile 但没有任何帮助。

最佳答案

如果您在评论中发布的路径是 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 做同样的事情

关于bash - 在 shell/bash 脚本中找不到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27547532/

相关文章:

在 Ubuntu 上运行 Java 时间比在 Windows 上运行缩短 1 小时

linux - 我怎样才能将它组合成一个单行 - bash

bash - 扩展 grep find 并复制到大文件夹(xargs?)

bash - 如何记录shell函数?

linux - SED:摘自谷歌财经

ios - 是否可以在 ubuntu 中为 ios 开发设置 cordova?

Bash 错误 - 预期二元运算符

linux - 使用 Jump Host 的问题

Python的subprocess.Popen()及源码

linux - 在 AWK 中比较两个文件