将变量子目录分配给shell脚本中的输出命令

时间:2016-12-14 21:26:35

标签: bash shell unix

我试图实现shell脚本来获取子目录的文件列表:

#!/bin/bash
PATH="/Movies"
MOVIES=${PWD}${PATH}
LS="$(ls -lp) ${MOVIES}"

但我收到此错误: ls:找不到命令

如何将子目录添加到ls命令?我非常感谢你的帮助。

2 个答案:

答案 0 :(得分:4)

在脚本中设置PATH变量时,您已覆盖默认的PATH变量,该变量告诉您​​的shell常见二进制文件所在的位置。更改PATH变量名称,或使用完整的ls路径'/ bin / ls'

#!/bin/bash
PATH="/Movies"
MOVIES=${PWD}${PATH}
LS="/bin/ls -lp ${MOVIES}"

$LS

#!/bin/bash
NOTPATH="/Movies"
MOVIES=${PWD}${NOTPATH}
LS="ls -lp ${MOVIES}"

$LS

更多信息here

答案 1 :(得分:1)

在shell脚本中不使用UPPERCASE变量也是一个好主意,因为它们是系统范围环境变量的默认模式。这样您就可以避免使用自己的变量覆盖某些变量。如果必须,请运行env命令以查看在bash会话中设置的变量。