龙空技术网

linux shell 1脚本运行方式

码享客 60

前言:

此刻大家对“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下运行脚本文件