当前位置: 技术问答>linux和unix
关于..config执行的问题
来源: 互联网 发布时间:2016-09-10
本文导语: 本人新手,学习linux环境下的开发,遇上一个问题不解,请高手们指教: 环境: Linux Fedora-leo 2.6.33.6-147.fc13.i686 #1 SMP Tue Jul 6 22:30:55 UTC 2010 i686 i686 i386 GNU/Linux 用户:用其他用户登陆,打开terminal后用su,以roo...
本人新手,学习linux环境下的开发,遇上一个问题不解,请高手们指教:
环境:
Linux Fedora-leo 2.6.33.6-147.fc13.i686 #1 SMP Tue Jul 6 22:30:55 UTC 2010 i686 i686 i386 GNU/Linux
用户:用其他用户登陆,打开terminal后用su,以root身份操作
当前目录和里面的一个文件: /A/.config,该文件对所有用户只读。
该文件里面定义了一个环境变量CONFIG=aaa
当我写一个简单的shell脚本,内容为:
. .config;echo ${CONFIG}
输出的内容为.config不存在,当然打印的环境变量也是空的。
但是我在当前目录下面,手动执行这些命令,却能够打印出来。
然后我在脚本里面添加个:stat .config,也能正常执行,查看文件信息,但是到了下一个. .config就不行了。
然后我将文件路径写为绝对路径,就OK了。
不解的是,我在脚本里面用pwd打印出脚本执行的当前路径,也是正确的路径阿,为什么stat可行,但是.却不是能执行呢?
环境:
Linux Fedora-leo 2.6.33.6-147.fc13.i686 #1 SMP Tue Jul 6 22:30:55 UTC 2010 i686 i686 i386 GNU/Linux
用户:用其他用户登陆,打开terminal后用su,以root身份操作
当前目录和里面的一个文件: /A/.config,该文件对所有用户只读。
该文件里面定义了一个环境变量CONFIG=aaa
当我写一个简单的shell脚本,内容为:
. .config;echo ${CONFIG}
输出的内容为.config不存在,当然打印的环境变量也是空的。
但是我在当前目录下面,手动执行这些命令,却能够打印出来。
然后我在脚本里面添加个:stat .config,也能正常执行,查看文件信息,但是到了下一个. .config就不行了。
然后我将文件路径写为绝对路径,就OK了。
不解的是,我在脚本里面用pwd打印出脚本执行的当前路径,也是正确的路径阿,为什么stat可行,但是.却不是能执行呢?
|
改成这样就行了
跟执行当前目录下的 configure 一样,
必须这样 ./configure, 而不是直接 configure,
因为 . 往往不在$PATH环境变量中.
(. ./.config;
echo ${CONFIG_VENDOR}
echo ${CONFIG_PRODUCT}
echo ${CONFIG_LINUXDIR})
. filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
跟执行当前目录下的 configure 一样,
必须这样 ./configure, 而不是直接 configure,
因为 . 往往不在$PATH环境变量中.
|
噢。 原来是在makefile 里阿。。
makefile 的语法和 普通 shell 是有区别的, 需要加上$(shell pwd)
例如: PWD := $(shell pwd)
|
. $(shell pwd)/.config
就是makefile里的写法
就是makefile里的写法