十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
shell中使用source xxx.sh ,是直接运行xxx.sh的命令,不创建子shell,而sh则创建子shell,子shell里面 的变量父shell无法使用,对环境变量的修改也不影响父shell。父shell中的局部变量,子shell也无法使用,只有父shell的环境变量, 子shell能够使用。
成都创新互联是一家专业提供麟游企业网站建设,专注与成都网站建设、网站建设、H5技术、小程序制作等业务。10年已为麟游众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
sh 创建了子shell和当前的shell并行执行,子shell中执行,脚本设置的变量不会影响当前shell。一旦子Shell中的执行完毕,此子Shell随即结束,回到父Shell中,不会影响父Shell原本的环境。
还有个办法可以在父shell和子shell中分别加上 echo $SHLVL ,显示当前运行层级,可以明显的看出来:
[root@bogon home]# cat father.sh
#!/bin/bash
echo "father shell"
echo $SHLVL
echo "father shell"
echo "source son shell"
source son.sh
echo "source son shell"
echo "sh son shell"
sh son.sh
echo "sh son shell"
[root@bogon home]# cat son.sh
#!/bin/bash
echo $SHLVL
1.连接到相应的Linux主机,进入Linux命令行状态,等待shell命令的输入。
2.在Linux命令行下,输入shell命令:Telnet192.168.120.209。
3.最后,按下回车键执行shell指令,此时会看到telnet并没有连接成功。
注意事项
附件:LINUX系统外壳原理
作为操作系统的外壳,Linux系统的外壳为用户提供了使用操作系统的接口。它是命令语言、命令解释器和编程语言的统称。
shell是用户和Linux内核之间的接口。如果您将Linux内核看作是球体的中心,那么shell就是内核周围的外层。当从shell或其他程序中进行指示时
当Linux传递一个命令时,内核会相应地做出响应。shell是一个命令语言解释器,它有自己的一组内置的shell命令,可以被系统的其他部分使用
由程序调用。用户在提示符处输入的命令由shell解释并传递给Linux内核。
扩展资料:
变量传递执行结果
1.shell通常放在/bin或/user/bin目录中。我们可以使用cat/etc/shell命令查看当前Linux系统上可用的shell。
2.使用echo$SHELL命令查看当前系统的默认SHELL并输出SHELL的环境变量。
3.shell中的Echo命令用于输出字符串。我们将需要输出的字符串用双引号括起来。
4.第一层的命令用PS1,第二层的命令用PS2, 是第二层的命令,如我们输入的命令没有结束的情况,显示的是第二层的命令。
5.我们使用echo$PS1和echo$PS2来查看提示符的当前格式,同样我们也可以修改命令提示符。
6.已经创建了一个shell脚本,使用vitest(自定义脚本名)进入脚本编辑页面,test是脚本的名称,后缀是.sh。
sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash,你可以试试tcsh啊,csh啊,ksh,zsh什么的,看看别的shell是什么样子的。当然,linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的。
关于这个linux系统的学习,我一直看刘遄老师的书籍《linux就该这么学》
文件比较运算符-e filename
如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename
如果 filename为目录,则为真 [ -d /tmp/mydir ]-f filename
如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]-L filename
如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]-r filename
如果 filename可读,则为真 [ -r /var/log/syslog ]-w filename
如果 filename可写,则为真 [ -w /var/mytmp.txt ]-x filename
如果 filename可执行,则为真 [ -L /usr/bin/grep ]filename1-nt filename2
如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]filename1-ot filename2
如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386
/boot/bzImage ]字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three"]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符num1-eq num2 等于 [ 3 -eq $mynum ]
num1-ne num2 不等于 [ 3 -ne $mynum ]num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]
拓展资料:
Linux操作系统
是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。