1. 怎么解释shell命令行与shell脚本运行结果不同
看看你的用户的默认shell是什么
就是/etc/password的最后一列
root:x:0:0:root:/root:/bin/bash
然后在shell脚本第一行就写上什么shell
#!/bin/bash
应该就好了 试试吧
还有要注意标点符号是中文的还是英文的 是全角还是半角
2. 执行单个shell命令,和执行一个.sh的shell脚本的方法一样吗我用/bin/sh -c可以
执行脚本时,不要加-c sh test.sh 这样就可以执行一个脚本
当执行系统的命令时,才会加-c
两个不能同时存在。
3. 终端与Shell的区别与联系是什么
终端是设备,shell是程序。
终端有分仿真终端和真正终端。由于真正终端(用com口连接被控设备)市场上已经很少买了,因为很少人直接用终端接上设备了。一般都用仿真终端,比如telnet,ssh上去等等,目前有很多仿真终端的软件,比如crt,和windows自带的超级终端。
而shell是linux操作系统的一个人机界面的程序,相当于dos,它包含一些列对系统进行操作的命令。
4. /bin/sh+脚本和sh+脚本,这两个脚本执行有什么区别
绝大多数情况没有区别,sh指的就是/bin/sh
但如果你的PATH变量设置特殊,导致使用了其他路径的sh,那就存在不一样行为的可能性。
5. 在终端中直接运行指令与放在脚本中运行指令, 运行结果不一样
ls -l `which sh`
sh --version
看看输出是什么
估计和你当前用的 shell 命令行不是同一个 shell 解释器。
写 shell 脚本,记住一定要在最开始写 #!/bin/bash 或者其他的解释器,比如 csh、tsh。python、perl、php 都可以这么用,这样你的脚本就制定了一个解释器来运行。运行时不要用 sh xxx.sh ,而是赋予可运行权限后 ./xxxx.sh 方式运行。
一般 Linux 下面的 /bin/sh 是一个链接,指向一个默认的 shell 解释器,这个链接如果不是你需要的解释器,那么脚本运行出现任何问题都可能。如果系统装了 busybox ,他也会提供一个 sh 解释器,而且命令的文件名也是 sh ,他和 bash 运行结果也有区别,只是这个 sh 不一定在 /bin 里面。
6. Mac OS 终端运行.sh脚本
1、编辑脚本文件。例如 test.sh 保存到 /Users/电脑用户名/Documents 目录下。内容:
echo "hello";
2、打开终端,运行 cd /Users/电脑用户名/Documents 进入目录;
3、直接运行 test.sh;
如果提示 -bash: test.sh: command not found 错误,设置 PATH :
export PATH=$PATH:/Users/电脑用户名/Documents
有时候也会提示 -bash: test.sh: No such file or directory,同样运行签名的命令,设置PATH即可解决;
再次运行,在控制台就能看到 hello 了!
如果还不行,试试 chmod u+x test.sh 提升文件权限后,再运行脚本。
7. shell和shell脚本 有什么区别啊
从本质上说 没有区别,如果硬要区分的话,可能shell更趋近于一段命令的解释,而shell脚本无非就是把一些列命了整合成一个脚本,实现更复杂的功能。
8. linux下的shell命令,命令行,终端运行概念的解释
Shell:
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
命令行(命令提示符):
命令行一般指命令提示符。命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。
终端:
终端Terminal通常是指那些与集中式主机系统相连的“哑”用户设备。终端从用户接收键盘输入,并且将这些输入发送给主机系统。主机系统处理这个用户的键盘输入和命令,然后输出返回并显示在这个终端的屏幕上。
9. centos:在bash终端执行脚本,./script.sh和script.sh有何不同
1: 在终端执行script.sh,必须使用如下方式
要么
./script.sh
要么
sourcescript.sh
2: 如果想直接script.sh
使用pwd命令获得script.sh的所在目录路径
将这个路径添加到path, 那么机器将自动在path环境变量中寻找script.sh的文件名,
使用/bin/bash script.sh的方式执行这个脚本,此时就可以不用加./了。
比如script.sh的全路径为 /aa/bb/script.sh
执行PATH=/aa/bb:${PATH}
然后直接script.sh就可以运行了。