【发布时间】:2021-04-30 20:58:42
【问题描述】:
我的文件夹中有许多包含函数的不同文件。 我使用 declare 将这些功能发布给用户。 这是我使用的示例函数:
space () {
df -h
}
declare -f space
在用户 .bashrc 下我添加了以下内容:
for FILE in $HOME/functions/* ; do source $FILE ; done
但是我收到了这条消息:
-bash: source: /home/user/functions/subdirectory: is a directory
谁能建议如何解决这个问题,或者有更好的方法将函数加载到 shell 变量而不是环境变量?
【问题讨论】:
-
…; do if [ -f "$FILE" ]; then source "$FILE"; fi; done. -
旁注:避免对
FILE等局部变量使用全部大写,因为它应该为HOME等环境变量和RANDOM等特殊shell变量保留。