我试图实现shell脚本来获取子目录的文件列表:
#!/bin/bash
PATH="/Movies"
MOVIES=${PWD}${PATH}
LS="$(ls -lp) ${MOVIES}"
但我收到此错误: ls:找不到命令
如何将子目录添加到ls命令?我非常感谢你的帮助。
答案 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会话中设置的变量。