linux shell脚本为什么不能执行if命令

作者&投稿:子凡 (若有异议请与网页底部的电邮联系)
Shell 脚本 if 判断后,怎么终止当前脚本但不退出 shell~

代码如下:

if list then
do something here
elif list then
do another thing here
else
do something else here
fi


EX1:

复制代码代码如下:

#!/bin/sh
SYSTEM=`uname -s` #获取操作系统类型,我本地是linux
if [ $SYSTEM = "Linux" ] ; then #如果是linux的话打印linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi #ifend


基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。

1.连接到相应的Linux主机,进入Linux命令行状态,等待shell命令的输入。

2.在Linux命令行下,输入shell命令:Telnet192.168.120.209。

3.最后,按下回车键执行shell指令,此时会看到telnet并没有连接成功。

注意事项
附件:LINUX系统外壳原理



作为操作系统的外壳,Linux系统的外壳为用户提供了使用操作系统的接口。它是命令语言、命令解释器和编程语言的统称。



shell是用户和Linux内核之间的接口。如果您将Linux内核看作是球体的中心,那么shell就是内核周围的外层。当从shell或其他程序中进行指示时



当Linux传递一个命令时,内核会相应地做出响应。shell是一个命令语言解释器,它有自己的一组内置的shell命令,可以被系统的其他部分使用



由程序调用。用户在提示符处输入的命令由shell解释并传递给Linux内核。
扩展资料:
变量传递执行结果
1.shell通常放在/bin或/user/bin目录中。我们可以使用cat/etc/shell命令查看当前Linux系统上可用的shell。

2.使用echo$SHELL命令查看当前系统的默认SHELL并输出SHELL的环境变量。

3.shell中的Echo命令用于输出字符串。我们将需要输出的字符串用双引号括起来。

4.第一层的命令用PS1,第二层的命令用PS2, >是第二层的命令,如我们输入的命令没有结束的情况,显示的是第二层的命令。

5.我们使用echo$PS1和echo$PS2来查看提示符的当前格式,同样我们也可以修改命令提示符。

6.已经创建了一个shell脚本,使用vitest(自定义脚本名)进入脚本编辑页面,test是脚本的名称,后缀是.sh。

autoreboot.sh: line 9: [0=1]: command not found
----
f [$LOAD_VULE=1]
这里错了,要改成
f [ $LOAD_VULE -eq 1 ]

特别强调下,"["后面有空格,“]”前面有空格。


兰考县19869657975: LINUX下SHELL编程脚本无法执行,提示no such file or directory. -
爱种羚黄: 结束符的问题,该hello文件,你恐怕是在windows下写的吧,文件的格式有问题.你可以:或者:在windows下打开该文件,然后另存为,这时要选择行结束符为 unix terminators - LF或者:在用VI 打开 ,然后删除所有的"^M"

兰考县19869657975: linux shell脚本为什么不能执行if命令 -
爱种羚黄: autoreboot.sh: line 9: [0=1]: command not found---- f [$LOAD_VULE=1] 这里错了,要改成 f [ $LOAD_VULE -eq 1 ] 特别强调下,"["后面有空格,“]”前面有空格.

兰考县19869657975: linux中shell脚本的变量为什么不能用数字? -
爱种羚黄: 变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵循如下规则:•首个字符必须为字母(a-z,A-Z).•中间不能有空格,可以使用下划线(_).•不能使用标点符号.•不能使用bash里的关键字(可用help命令查看保留关键字).

兰考县19869657975: linux shell编程脚本第一行为什么一定要用"#!/bin/sh",不写行不行?这个"!"是什么意思? -
爱种羚黄: #! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径 如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell.如果脚本被编写为在Kornshell ksh中运行,而默认运行shell脚本的为C shell csh,则脚本在执行过程中很可能失败.

兰考县19869657975: linux下shell的脚本无法获取别的用户的环境变量,该怎么解决 -
爱种羚黄: linux上遇到点问题,也没找到linux社区.我是用root用户在/etc/profile中修改了java_home和catalina_home,这也能在所有其他用户环境下使用,就不用挨个设置了 可是我在另外一个用户下写了一个sh脚本:#!/bin/shecho $CATALINA_HOME ...

兰考县19869657975: linux shell 为什么要改变权限? -
爱种羚黄: bash是 Bourne Again SHell 是linux标准的默认shell ,它基于Bourne shell,吸收了C shell和Korn shell的一些特性.bash完全兼容Bourne shell,也就是说用Bourne shell的脚本不加修改可以在bash中执行. sh是Bourne shell 这个是UNIX标准的默认shell,对它评价是concise简洁 compact紧凑 fast高效 有AT&T编写,属于系统管理shell.

兰考县19869657975: linux定时任务调用shell时脚本中的存储过程不执行 -
爱种羚黄: 1、被执行的脚本没有执行权限,这种情况 直接授权 chmod 755 xxx.sh2、被执行的脚本编码有问题,这种情况直接转码 dos2unix xxx.sh 我们也可下载一个windows版的dos2unix,转完码后再上传到Linux服务器 补充:linux定时任务 每天早上6点 ...

兰考县19869657975: linux如何创建 shell脚本,创建了shell但保存不了 -
爱种羚黄: 学习一下vi命令吧 命令模式下 输入i /a 等 进入编辑模式 编辑内容 编辑模式下 键盘 Esc 进入命令模式 命令模式下, 敲入冒号 ":"然后输入wq!即可保存编辑 授执行权限给脚本(假设名为test) chmod 755 test 或者 chmod a+x test

兰考县19869657975: linux shell脚本有必要搞得很懂么? -
爱种羚黄: 我是做嵌入式的,在linux下做开发,shell脚本是非常非常好用的东西,特别是对文件的操作磁盘的操作,目标板系统以及存储设备的管理.一般都是c中嵌这脚本.有的时候要写100行的c,用一行shell命令就可以实现其功能.而且学习shell脚本...

兰考县19869657975: linux定时任务shell脚本开头如下 cd ~ . .bash - profile 定时任务执行后提示找不到.bash - profile什么情况 -
爱种羚黄: .bash_profile 是没错的,以点号开头的文件是隐藏文件.通常就是在用户目录下的.先去掉 ./1.sh 看看是否能执行,如果这样可以,说明就是 ./1.sh 执行过程中改变了当前路径.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网