linux基础学习总结02
来源:互联网 发布:监控硬盘覆盖数据恢复 编辑:程序博客网 时间:2024/05/18 10:11
第02总结——关于ubuntu中sh执行shell脚本报错问题
参照《鸟哥的linux私房菜》书中写条件判断的例子:
- 当执行一个程序的时候,这个程序会让用户选择 Y 或 N
- 如果用户输入 Y 或 y 时,就显示『 OK, continue 』
- 如果用户输入 n 或 N 时,就显示『 Oh, interrupt ! 』
- 如果不是 Y/y/N/n 之内的其他字符,就显示『 I don’t know what your choice is 』
所写脚本如下 ans_yn.sh:
#!/bin/bashread -p "Please input (Y/N): " ynp[ "${ynp}" == "Y" -o "${ynp}" == "y" ] && echo "OK,continue" && exit 0[ "${ynp}" == "N" -o "${ynp}" == "n" ] && echo "Oh,interrupt!" && exit 0echo "I don't know what your choise is" && exit 0
执行 sh ans_yn.sh
ubuntu@kvm-test:~/bin$ sh ans_yn.sh Please input (Y/N): yans_yn.sh: 8: [: y: unexpected operatorans_yn.sh: 9: [: y: unexpected operatorI don't know what your choise is
可以看到上面显示有报错
再用bash ans_yn.sh执行
ubuntu@kvm-test:~/bin$ bash ans_yn.sh Please input (Y/N): yOK,continue
正确执行。而且鸟哥的书中写道,对shell脚本可以以 bash 程序来执行:通过『 bash shell.sh 』或『 sh shell.sh 』来执行。那为何 『 sh shell.sh 』 也可以执行呢?这是因为 /bin/sh 其实就是 /bin/bash (链接), 使用 sh shell.sh亦即告诉系统,我想要直接以 bash 的功能来执行 shell.sh 这个文件内的相关指令的意思。
那就回到刚才的报错,sh执行报错,是不是因为/bin/sh的链接非/bin/bash
通过命令查看
ubuntu@kvm-test:~/bin$ ls -al /bin/shlrwxrwxrwx 1 root root 4 Sep 18 18:52 /bin/sh -> dash
果然,sh链接的是dash,而不是bash,所以造成执行结果不一样(一个报错,一个正常执行)
如果想把/bin/sh的链接改为bash,则可以执行下面的命令
ubuntu@kvm-test:~/bin$ sudo ln -sf /bin/bash /bin/shsudo: unable to resolve host kvm-test[sudo] password for ubuntu: ubuntu@kvm-test:~/bin$ ls -al /bin/shlrwxrwxrwx 1 root root 9 Nov 29 14:58 /bin/sh -> /bin/bash
再执行 sh ans_yn.sh
ubuntu@kvm-test:~/bin$ sh ans_yn.sh Please input (Y/N): yOK,continue
不再报错
0 0
- linux基础学习总结02
- linux 基础学习总结
- linux基础学习总结01
- linux基础学习总结03
- linux基础学习总结04
- linux基础学习之 grep总结
- linux基础学习之关机命令总结
- linux基础操作命令学习总结
- linux学习笔记基础02
- Linux基础指令学习02
- linux c 基础学习总结之文件IO
- 《LINUX设备驱动》学习总结(基础篇)
- linux基础学习之 makefile重要知识点总结
- Linux学习——基础命令总结(1)
- 总结LINUX基础
- Linux 基础总结(二)
- LINUX基础文档总结
- Linux驱动基础总结
- 如何在3D场景中选择物体并显示轮廓效果
- 微信Mysql的数据操作语言DML
- iOS开发- 如何生成.a文件
- List集合合并指定数据
- Mariadb(mysql)基本操作
- linux基础学习总结02
- 28. Implement strStr()徒手尝试#3(Done)
- 第一个存储过程,写了很长时间,记录一下
- iBeacon工作原理
- 解决idea不检查语法错误问题
- xml格式异常-CDATA嵌套
- 把office文档转换为html过程中的一些坑
- 百度云推送出现No implementation found for java.lang.String dji.midware.natives
- 十大Intellij IDEA快捷键