前言:
此刻大家对“ubuntushell编译脚本”可能比较看重,同学们都需要知道一些“ubuntushell编译脚本”的相关文章。那么小编也在网络上搜集了一些对于“ubuntushell编译脚本””的相关资讯,希望我们能喜欢,兄弟们一起来了解一下吧!shell脚本是解释执行的,不需要编译。
用户输入命令后,一般情况下,shell会fork并exec该命令。但是shell的内建命令例外,执行内建命令相当于调用shell进程中的一个函数,不创建新的进程。比如cd、exit等命令都是内建命令。
如果将命令行下输入的命令用()括号括起来,那么也会fork出一个子shell执行小括号中的命令,一行中可以输入由分号;隔开的多个命令,比如:
maxiangke@ubuntu:~$ (cd project;pwd)/home/maxiangke/projectmaxiangke@ubuntu:~$ pwd/home/maxiangke
如果不加小括号,则直接在交互式Shell下执行的:
maxiangke@ubuntu:~$ cd project;pwd/home/maxiangke/projectmaxiangke@ubuntu:~/project$ pwd/home/maxiangke/project
同样的,用source命令运行一个脚本的时候,不会用fork起一个新的进程,而不是会把命令在该终端一行行执行解释,如果用点号.运行的话,那么就会fork进程。
maxiangke@ubuntu:~$ cat test.sh #!/bin/bashcd projectpwd maxiangke@ubuntu:~$ ./test.sh /home/maxiangke/projectmaxiangke@ubuntu:~$ pwd/home/maxiangke
而用source的话,结果如下
maxiangke@ubuntu:~$ source test.sh /home/maxiangke/projectmaxiangke@ubuntu:~/project$ pwd/home/maxiangke/project
额外提一个小知识,echo命令在输出变量的时候,用单引号是不专义的,如下所示。
maxiangke@ubuntu:~/project$ data=hellomaxiangke@ubuntu:~/project$ echo "$data"hellomaxiangke@ubuntu:~/project$ echo '$data'$data
当字符串本身就有单引号/双引号的时候,那么就必须加上双引号/单引号包进来,比如输入:
echo "It's a dog"echo 'He says "This is good"'
输出:
It's a dogHe says "This is good"
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #ubuntushell编译脚本 #ubuntu下运行脚本文件