shell - 无法在 shell 脚本中获取属性文件

标签 shell unix

我尝试了以下两种方式来获取属性文件

#!/bin/sh
. import.properties
echo $USER_ID
echo $INPUT_FILE

它说 :
./test.sh[3]: import.properties:  not found

尝试使用 source import.properties 时它给出的信息是:
./test.sh[3]: source:  not found.

我对脚本和环境很陌生。请让我知道我在这里缺少什么?

最佳答案

通过点 . 找到命令,该文件必须是可读的(不一定是可执行的)并且在您的 PATH 中(并且为了安全使用,它必须包含 shell 脚本)。

如果文件在您的当前目录中并且 . (目录,而不是命令)不在您的 PATH 中,您可以使用:

. ./import.properties

否则,您需要指定文件的绝对名称或文件的相对名称,或者将文件移动到 PATH 上方便的目录。

替代符号,source import.properties失败是因为您不在 C Shell 中,并且因为您没有使用 Bash。 source C Shell 中的命令类似于 Bourne Shell 中的 dot 命令。 Bash 允许它作为 dot 命令的同义词(或 dot 命令作为 source 的同义词)。自 source没有找到,我们可以放心地假设您的 shell 不支持它作为内置。

关于shell - 无法在 shell 脚本中获取属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919350/

相关文章:

linux - 在 shell 中将 .txt 转换为 .csv

java - 使java程序返回值以调用shell脚本

c++ - 如何在 unix 上将控制台光标移动到 (x, y)?

c - 为什么每次 fork 后我的 fork 程序的大小都会加倍?

python - 何时对 Python 子进程模块使用 Shell=True

linux - 如果 "NULL"然后在 shell 脚本中使用 0

bash - 如何列出我的 shell 中定义的函数?

linux - 如何在 nslcd.service 之后启动 docker.service?

linux - Bash/Shell-将所有文件从子目录 move 到目标目录?

linux - 对特定的日期列进行排序并获取最早的日期