shell脚本中的.
时间: 2024-04-09 19:25:32 浏览: 68
在Shell脚本中,"."(点号)是一个特殊的命令,也被称为"source"命令。它用于在当前Shell环境中执行指定的脚本文件,并将其中的命令和变量导入到当前Shell中。
使用"."命令的语法如下:
```
. filename
```
或者
```
source filename
```
其中,"filename"是要执行的脚本文件的路径。
当使用"."命令执行脚本文件时,脚本文件中的命令和变量将在当前Shell环境中执行和生效,而不是在一个新的子Shell中执行。这意味着,通过"."命令执行的脚本可以修改当前Shell的环境变量、定义新的函数等,并且这些修改将在脚本执行完毕后仍然保持有效。
使用"."命令的一个常见用途是在Shell脚本中引入其他脚本文件或配置文件,以便共享其中的函数、变量或配置项。通过使用"."命令,可以将多个脚本文件组织起来,使得它们可以相互调用和共享资源。
相关问题
shell脚本中. 一个文件
在shell脚本中,"."(点号)后跟一个文件名,表示在当前shell环境下执行指定的文件。这个文件可以是另一个shell脚本,也可以是一个普通的文本文件。使用"."命令执行文件时,被执行的文件中声明的变量和环境变量都可以在主脚本中进行获取和使用。与之相对的是使用"sh"或"./"命令执行文件,这样会新开一个子Shell执行脚本,子Shell执行完毕后返回父Shell,子Shell中的环境变量不会带回父Shell。
举个例子,如果我们有一个名为"test.sh"的脚本文件,我们可以在另一个脚本文件中使用"."命令来执行它,如下所示:
```
. /path/to/test.sh
```
这样,test.sh中声明的变量和环境变量就可以在当前脚本中使用了。
shell脚本 %.*
`${var%.*}`是一个shell脚本中的字符串过滤规则,它会删除变量var中最后一个"."及其右边的所有字符。具体来说,假设定义了一个变量为:`var=/a/b/c/file.txt`,那么`${var%.*}`将会返回`/a/b/c/file`。这个过滤规则在处理文件名时非常有用,可以用于去除文件名的扩展名。
下面是一个例子,演示如何使用`${var%.*}`来去除文件名的扩展名:
```shell
filename="example.txt"
name_only=${filename%.*}
echo $name_only # 输出:example
```
阅读全文