在 Arch USB iso、zsh 下,运行包含以下内容的脚本./test
:
#!/bin/bash
PATH=$(dirname $0)
ls $PATH
回报
ls: 未找到命令
知道如何解决这个问题吗?
编辑: ls 单独起作用,但当我添加 $PATH 时不起作用
编辑:刚刚从评论中意识到 $PATH 是一个环境变量,我正在替换它的值......
答案1
变量 PATH 是一个特殊的变量。有很多特殊变量(而且都是大写,所以很容易避免)。PATH
保存用于搜索命令的目录列表。
为了乐趣和学习(尽管这些是同一件事),请echo $PATH
在脚本之外输入 ,以查看其中包含的内容。
要解决问题,请不要破坏 PATH:使用不同的变量名称(并非全部大写)。
答案2
尝试一下/bin/ls
,它似乎ls
不在@123 在评论中提到的路径中。
要添加/bin
到PATH
.加入~/.bashrc
export $PATH=$PATH:/bin
答案3
尝试:
#!/bin/bash
PATH="$PATH:$(dirname $0)"
ls $PATH
这样您就可以添加$(dirname $0)
到 PATH 变量而不是替换它。或者,如果您不想编辑环境变量并想$(dirname $0)
单独使用,请使用不同的变量名称。