bash与sh在对于脚本执行来说,效果一致,不继承除了当前shell之外的变量值。在无空格“.”且有执行权限的脚本执行中,效果与bash及sh一致。source及带空格的“.”执行效果一致,且会继承其他shell的变量。除了不带空格的“.”之外,其他脚本的执行都不需要给脚本增加执行权限。五、一个小疑问 请大家看一下以下命令...
一、查看当前系统支持的shell类型 代码语言:javascript 复制 [root@Geeklp-BashShell~]# cat/etc/shells/bin/sh/bin/bash/sbin/nologin/usr/bin/sh/usr/bin/bash/usr/sbin/nologin 以上列出了当前系统所支持的shell类型。查看shell的历史我们可以知道,我们通常所说的bash shell(bash)全称为GNU Bourne-Again SHell。
ash:ash shell 是由Kenneth Almquist编写的,Linux中占用系统资源最少的一个小shell,它只包含24个内部命令,因而使用起来很不方便。 csh:csh 是Linux比较大的内核,它由以William Joy为代表的共计47位作者编成,共有52个内部命令。该shell其实是指向/bin/tcsh这样的一个shell,也就是说,csh其实就是tcsh。 ksh:ksh ...
通过执行两者. file.sh或. ./file.sh结果来运行文件将是相同的,但不是./test.sh. source和bash命令呢? 如果您使用任何 shell 命令,例如 Bash 或 ksh,您将生成一个新的 shell 来运行该命令。因此,您设置的每个变量在新 shell 中都不可用。另一方面,source使用当前的 shell 并且不产生新的 shell 进程。因此,...
另一方面,source使用当前的 shell 并且不产生新的 shell 进程。因此,您在文件中所做的任何更改都会影响您当前的 shell。上面,正如您从输出中看到的那样,当您执行./或bash因为它们正在产生新进程时,PID 会发生变化。如上所示,命令的父进程 ID (PPID)bash test.sh等于命令的进程 ID (PID) . ./test.sh。
结论一: ./*.sh的执行方式等价于sh ./*.sh或者bash ./*.sh,此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本。 结论二: .source ./*.sh和 . ./*.sh的执行方式是等价的,即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 而在子shell进程中执行此脚本。
bash和sh的区别主要体现在执行shell脚本的时候 我们先写一个shell脚本test.sh 内容如下 [root@centos76 data]# vim test.sh [root@centos76 data]# [root@centos76 data]# cat test.sh source err echo hello 这个脚本中有两个命令 其中第一个命令会因为err找不到而报错 ...
source命令(从 C Shell 而来)是bash shell的内置命令。 点命令,就是个点符号,(从Bourne Shell而来)。 2、sh和bash命令用法: sh FileName bash FileName 1. 2. 作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"
source命令的作用就是用来执行一个脚本,那么: source a.sh 同直接执行 ./a.sh 有什么不同呢,比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行 echo $KKK ,发现没有值,如果你用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell...
要在bash shell中使用source命令,您只需在终端中输入以下命令: source <file_path> 复制代码 其中,<file_path>是您要执行的脚本文件的路径。这将使bash shell执行指定的脚本文件,并将其效果应用于当前shell会话。您也可以使用.来替代source命令,例如: . <file_path> 复制代码 这两个命令的效果是相同的,都用于...