shell执行linux命令
1. 如何运行linux shell程序
如何运行shell程序,如何在shell程序以及后续脚本中使用同一个变量,这些在工作中经常用到, 我找到如下的文章,再加深复习一下。
1 source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"
注:该命令通常用命令“.”来替代。
如:source .bash_profile
. .bash_profile两者等效。
source(或点)命令通常用于重新执行刚修改的初始化文档。
source命令(从 C Shell 而来)是bash shell的内置命令。
点命令,就是个点符号,(从Bourne Shell而来)。
source的程序主体是bash,脚本中的$0变量的值是bash,而且由于作用于当前bash环境,脚本中set的变量将直接起效
2 sh, bash的命令用法:
sh/bash FileName
作用:打开一个子shell来读取并执行FileName中命令。该filename文件可以无"执行权限"
注:运行一个shell脚本时会启动另一个命令解释器.
每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.
这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.
shell脚本也可以启动他自已的子进程.
这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.
在ubuntu中sh只是bash的一个链接。
由于是在子shell中执行,脚本设置的变量不会影响当前shell。
3 ./的命令用法:
./FileName
作用:打开一个子shell来读取并执行FileName中命令。该filename文件需要"执行权限"
注:运行一个shell脚本时会启动另一个命令解释器.
每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.
这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.
shell脚本也可以启动他自已的子进程.
这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.
由于是在子shell中执行,脚本设置的变量不会影响当前shell。
4 export:
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本
5. 举例
比如您在一个脚本里export $KKK=111 ,假如您用./a.sh执行该脚本,执行完毕后,您运行 echo $KKK ,发现没有值,假如您用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是 source不同他就是在本shell中执行的,所以能够看到结果.
小测试
1 建立test.sh
#!/bin/bash
export s=/home/jboss/
2 执行命令: source test.sh
echo $s
结果输出: /home/jboss/
3 新开个shell
执行命令: ./test.sh
echo $s
结果: 没有输出s值
结论:
1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出。
2、一个shell中的系统环境变量才会被复制到子shell中(用export定义的变量);
3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)。3、不用 export定义的变量只对该shell有效,对子shell也是无效的。
直接执行一个脚本文件是在一个子shell中运行的,而source则是在当前shell环境中运行的。
source可以让脚本影响它们的父shell环境,这和export去影响子shell环境相反.
2. Linux Shell 怎样获得命令的执行结果
1、CAT命令在用户主目录下创建一名为f1的文本文件,内容:Linux is useful for us all.You can never imagine how great it is。
3. linux中的命令在shell脚本中怎么写
执行“nano function.sh”命令,创建新的shell脚本文件,名字为“function.sh”。
编辑新创建的shell脚本文件“function.sh"。函数必须先定义后使用。
shell脚本的内容如下:
#!/bin/bash
add(){
sum_1=$1;
sum_2=$2;
sum=`expr $sum_1 + $sum_2`;
echo "the sum is ${sum}";
}
add $1 $2
4
给新创建的function.sh赋可执行权限,命令为“chmod 755 function.sh”。
5
使用“./function.sh 1 2”调用脚本,并给脚本传递两个数字。
6
执行命令的结果为“the sum is 3”。
4. 在Linux执行shell脚本的命令是什么
如果你shell脚本名字是a.sh
你可以 sh a.sh 或者 . ./a.sh
5. linux 怎么进入shell编程模式
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
6. Linux虚拟机的管理及如何在shell中执行命令
远程linux的虚拟机打开ssh服务,在本地用ssh 加上ip可以直接链接的
可以使用vnc进行连接,连接后就可以执行shell命令啦。
7. 如何远程通过Xshell实现对linux主机的开、关机及重启
关机的情况无法远程开机,关机命令shutdown,重启命令reboot,使用步骤如下:
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
8. 关于linux命令行,shell命令,vi命令
shell并不是一个所谓在“终端”执行的东西,而是一个linux内核与用户之间交互的界面,也可以理解成为是一个专业翻译的角色。
vi不过就是一个文本编辑器罢了,就如同DOS或Windows系统中的Edit一样,只不过这个vi文本编辑器的功能是可以靠添加模块来扩展罢了。在unxu或linux中还有一个文本编辑器叫‘emacs’,只不过这个编辑器更烦,更难于掌握。
其实linux并不难学,无非就是些常用的‘命令’罢了,而且这些所谓的‘命令’多半都是以源码的方式存在在系统中的。所谓‘命令行’不过就是调用这些源码后,然后让一个叫‘shell’的‘家伙’解释给linux内核去听。而这些所谓的‘命令’统统都在bin或是sbin的目录下面。
linux在用户登录以后,自行会启动一个shell,所有用户必须通过shell才能与系统会话。linux的所谓窗口界面,只不过就是系统在用户登录后自行调用了一个shell脚本而启动了Xwindow后的表象罢了。
所谓‘命令行’其实就是shell的解释命令。
9. linux命令在shell中无法执行的问题
*
*
*
*
*
/bin/sh
/test/joke.sh
>>
/tmp/joke.log
2>&1
如果路径没错的话,应该是执行了,echo
的输出要重定向到日志文件,否则是看不到的
每分钟没必要加"/1"了
另外,脚本第一行:#!/bin/sh