alvoro Asked:2020-02-10 21:54:39 +0000 UTC2020-02-10 21:54:39 +0000 UTC 2020-02-10 21:54:39 +0000 UTC 无法从脚本创建别名 772 创建了一个包含以下内容的文件: #!/bin/bash alias some='echo 2' 赋予他执行权,脚本执行时什么也没有发生(不创建别名)。我究竟做错了什么?bash 版本 - 4.3.46 bash 1 个回答 Voted Best Answer aleksandr barakin 2020-02-11T01:36:56Z2020-02-11T01:36:56Z 别名、变量、函数都是shell进程的属性。它们“继承”给子进程,但子进程不能以任何方式影响父进程的属性。 当您“运行”脚本时,将创建 shell 进程的一个新(子)实例,并且在它终止后,它的所有别名、变量和函数都将不可挽回地丢失(好吧,除非将它们保存到,例如,文件)。 为了在当前 shell 进程中执行脚本中的命令(不创建子进程),您可以使用内置命令source(或其同义词 - .): $ source скрипт 或者 $ . скрипт 通常,每个交互式shell 会话中应该可用的所有别名、变量和函数的定义都放在一个文件~/.bashrc中,它只是在新的交互式会话source ~/.bashrc开始时由命令“调用”。
别名、变量、函数都是shell进程的属性。它们“继承”给子进程,但子进程不能以任何方式影响父进程的属性。
当您“运行”脚本时,将创建 shell 进程的一个新(子)实例,并且在它终止后,它的所有别名、变量和函数都将不可挽回地丢失(好吧,除非将它们保存到,例如,文件)。
为了在当前 shell 进程中执行脚本中的命令(不创建子进程),您可以使用内置命令
source(或其同义词 -.):或者
通常,每个交互式shell 会话中应该可用的所有别名、变量和函数的定义都放在一个文件
~/.bashrc中,它只是在新的交互式会话source ~/.bashrc开始时由命令“调用”。