Bash 脚本:找不到 ls 命令

Bash 脚本:找不到 ls 命令

在 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 在评论中提到的路径中。

要添加/binPATH.加入~/.bashrc

export $PATH=$PATH:/bin

答案3

尝试:

#!/bin/bash
PATH="$PATH:$(dirname $0)"
ls $PATH

这样您就可以添加$(dirname $0)到 PATH 变量而不是替换它。或者,如果您不想编辑环境变量并想$(dirname $0)单独使用,请使用不同的变量名称。

相关内容