schema_dir=schema_app
for SCHEMA_CHANGE in $schema_dir/*
do
所以我的 pwd/A/B/C/scripts
中有子目录(schema_app
、schema_data
等)。我想要一个 for 循环来遍历每个目录中的文件,具体取决于我最初传递给脚本的参数。
我在这里犯了什么错误?因为,当我回显SCHEMA_CHANGE
(文件名)时,它显示如下schema_app/filename
。我怎样才能只得到filename
这里?
答案1
你没有做错任何事。schema_app/filename
是文件的正确路径。这是您需要传递给命令(或重定向)以处理文件的内容。单独使用filename
是行不通的:命令如何知道文件位于哪个目录中?
如果由于某种原因您需要不带目录部分的文件名,您可以使用
"${SCHEMA_CHANGE##*/}"
这将获取变量的值SCHEMA_CHANGE
并删除直到最后一个的部分/
(或者如果没有 则保持值不变/
),因此您将获得不带目录部分的文件名。