当前位置: 技术问答>linux和unix
shell的简单问题。
来源: 互联网 发布时间:2016-09-22
本文导语: 1.既然内容都是一样的,为了什么有的会写出#!/bin/sh 和 #!/bin/ksh 2.如果在teminal中输入 cd /root 那么就会到/root 中去,那么为什么cd /root 写到shell脚本文件中去,运行完了以后还会回到当前目录中呢? 新...
1.既然内容都是一样的,为了什么有的会写出#!/bin/sh 和 #!/bin/ksh
2.如果在teminal中输入 cd /root 那么就会到/root 中去,那么为什么cd /root 写到shell脚本文件中去,运行完了以后还会回到当前目录中呢?
新手,请勿见笑,呵呵。
2.如果在teminal中输入 cd /root 那么就会到/root 中去,那么为什么cd /root 写到shell脚本文件中去,运行完了以后还会回到当前目录中呢?
新手,请勿见笑,呵呵。
|
第一 #!/bin/sh 和 #!/bin/ksh
只是使用的不同shell程序,sh和ksh
第二 你在当前shell中运行脚本,脚本会自动打开新的shell执行相应的命令,然后新shell自动退出,所以你的shell的目录还是当前目录!
只是使用的不同shell程序,sh和ksh
第二 你在当前shell中运行脚本,脚本会自动打开新的shell执行相应的命令,然后新shell自动退出,所以你的shell的目录还是当前目录!
|
1,你需要了解一下,sh与bsh,bash,ksh之间的关系
2,在于执行方式,请自行比较下面两种执行脚本方式的不同
sh ur-script
. ur-script
2,在于执行方式,请自行比较下面两种执行脚本方式的不同
sh ur-script
. ur-script
|
1、我们的系统中有多种shell为你服务,你可以选用其中的一种(通常熟悉其中的一种也就足够了)。
2、你需要简单了解进程的概念,进程之间的关系,进程的生命周期
2、你需要简单了解进程的概念,进程之间的关系,进程的生命周期
|
1.既然内容都是一样的,为了什么有的会写出#!/bin/sh 和 #!/bin/ksh
-------------------
不知道你的系统是什么系统 你ls -l /bin/sh一下
有的情况/bin/sh是到该系统默认shell环境的链接 比如我的centos /bin/sh是指向/bin/bash的链接文件。
2.如果在teminal中输入 cd /root 那么就会到/root 中去,那么为什么cd /root 写到shell脚本文件中去,运行完了以后还会回到当前目录中呢?
---------------------------
因为你以./脚本或者/path/脚本运行该脚本的时候 会自动fork一个子进程的 你的那些cd什么的只在脚本执行的子进程里有效
你想想要是脚本里的cd对你当前生效了 那比如机器里运行不同的脚本 都有换路径的 那你的teminal里不是乱套了 你还怎么进行操作?
-------------------
不知道你的系统是什么系统 你ls -l /bin/sh一下
有的情况/bin/sh是到该系统默认shell环境的链接 比如我的centos /bin/sh是指向/bin/bash的链接文件。
2.如果在teminal中输入 cd /root 那么就会到/root 中去,那么为什么cd /root 写到shell脚本文件中去,运行完了以后还会回到当前目录中呢?
---------------------------
因为你以./脚本或者/path/脚本运行该脚本的时候 会自动fork一个子进程的 你的那些cd什么的只在脚本执行的子进程里有效
你想想要是脚本里的cd对你当前生效了 那比如机器里运行不同的脚本 都有换路径的 那你的teminal里不是乱套了 你还怎么进行操作?