执行命令时 ./, .空格, 直接运行 有什么区别?
来源: 互联网 发布时间:2015-11-30
本文导语: 他们之间执行的有区别吗? | 其实这个问题主要是关于脚本程序文件搜索和执行机制问题。 我前面说到这样的处理仅仅和系统带的shell环境设置有关,而没有其他的原因 所以你的问题中 shutdb...
他们之间执行的有区别吗?
|
其实这个问题主要是关于脚本程序文件搜索和执行机制问题。
我前面说到这样的处理仅仅和系统带的shell环境设置有关,而没有其他的原因
所以你的问题中 shutdb.sh 如果只是在当前目录放置,要执行它采用绝对路径来指明或者采用相对路径来指明是没有本质区别的(如果脚本内部有处理除外),如果当前目录是已经指明的系统搜索路径包含的目录,则直接用脚本名来执行效果也是一样的。
此外在大多Linux系统下文件名前有点号表示该文件是需要隐藏的,它和没有点号的文件是不同的文件。
我其实不太明白你问这个问题的目的。
如果那个点号后面有空格再是需要执行的文件名,则这样的方法只能应用在脚本程序中,那个点号是表示引入,就是把那个文件中所有的内容插入到当前位置并执行,这个是在写脚本程序时很有用的功能,它可以让你的程序做到代码的复用,此外它还可以执行无执行权限的文件,也就是说如果你的shutdb.sh在当前用户状态没有执行权限,而有读取权限,你可以采用一个你用执行权限的空功能脚本通过
.空格shutdb.sh
的方式 来执行shutdb.sh中的所有当前权限下可以执行的代码,比如
test.sh
-----------------------
#!/bin/bash
. shutdb.sh
-----------------------
这样你运行test.sh其实是执行了shutdb.sh
我前面说到这样的处理仅仅和系统带的shell环境设置有关,而没有其他的原因
所以你的问题中 shutdb.sh 如果只是在当前目录放置,要执行它采用绝对路径来指明或者采用相对路径来指明是没有本质区别的(如果脚本内部有处理除外),如果当前目录是已经指明的系统搜索路径包含的目录,则直接用脚本名来执行效果也是一样的。
此外在大多Linux系统下文件名前有点号表示该文件是需要隐藏的,它和没有点号的文件是不同的文件。
我其实不太明白你问这个问题的目的。
如果那个点号后面有空格再是需要执行的文件名,则这样的方法只能应用在脚本程序中,那个点号是表示引入,就是把那个文件中所有的内容插入到当前位置并执行,这个是在写脚本程序时很有用的功能,它可以让你的程序做到代码的复用,此外它还可以执行无执行权限的文件,也就是说如果你的shutdb.sh在当前用户状态没有执行权限,而有读取权限,你可以采用一个你用执行权限的空功能脚本通过
.空格shutdb.sh
的方式 来执行shutdb.sh中的所有当前权限下可以执行的代码,比如
test.sh
-----------------------
#!/bin/bash
. shutdb.sh
-----------------------
这样你运行test.sh其实是执行了shutdb.sh