shell脚本ifo
1. linux shell 脚本中if语句的用法 在脚本中使用if if[! -w “$logfile” ] 为什
if[!-w"$logfile"]
thenecho"notwriteable"
echo"notwriteableagain"
fi
注意空格,shell里面有的地方必须有空格,有的地方必须没有空格。[ ]前后都要有空格
2. shell 脚本的if语句报错
#!/bin/bash
read-p"pleseinputonenumber:"k
forain{1,2,3}
do
forbin{1,2,3}
do
forcin{1,2,3}
do
fordin{1,2,3}
do
n=$((a*1000+$b*100+$c*10+$d))#shell中不能直接执行算术运算,要加上$(())
m=$((n%80))
if[$m-eq$k];then#[]方括号与条件要用空格分开
if[$a-eq$c];then
if[$b-eq$d];then
echo$n
fi
fi
fi
done
done
done
done
3. 如何使用shell 脚本语法书写 if 分支语句
和C语言类似,在Shell中也可以实现分支语句。用if、then、elif、else、fi这几条命令实现分支控制。这种流程控制语句本质上也是由若干条Shell命令组成的,例如:
?#! /bin/sh
??
?if [ -f ~/.bashrc ]; then
? . ~/.bashrc
?fi
目前在黑马程序员学习C/C++,还不会用,然后在社区查了一下,分享给你,如果你有什么不了解的,也可以去查一下,看一看啊
4. shell 脚本 if 的用法小问题
1. 执行shell脚本的时候加上 -x ,执行脚本时会把过程列出来!(有利于我这种新手学习)sh -x shell (./shell 也可以执行shell脚本 但是没有-x参数)2. 传的值的个数大于 read 定义的接受变量的时候会把多余的值都给最后一个变量!!3. expr 对整数型变量进行运算 如果运算结果不是整数小数点后面的全部省去 (乘号要用转意字符'/') .4. 在shell脚本里面 执行一条输出的命令(pgrep mysqld)怎么吧输出的结果作为值赋给变量?web=$(/usr/bin/pgrep mysqld) #可以用 变量=$(命令) 和 变量=`命令` 来吧命令执行的结果赋给变量
if [ $web = ]
then
/etc/init.d/mysql start
fi
5.查看某个命令所在的位置可以用 whereis /which/type 三个命令来查看6.awk命令的应用作用:分段提取! (一行为单位来进行分段)awk -F [分隔符] '条件 动作' /对象例: awk -F : '$3==0 {print $1}' /etc/passwd例: awk -F : '$1 == root {print $1} ' /etc/passwd# -F : 用:分割passwd每行的内容 ($1 指第一段内容 $2 指第二段内容$n 指第n段内容)# ' 匹配 动作' 单引号里面写的是 匹配命令和打印动作 匹配$3==0 第三段等于0 打印{print $1} 打印第一段内容 ($3 == 0 匹配出行 在打印出这些行的第一段内容 )
5. linux 下shell 脚本 if条件,想写 a=0且b=0 或者c!=0,应该怎么写啊、我写成if [$a -eq 0] && [ $b -eq 0
root@Bizbox:~# a=0
root@Bizbox:~# b=0
root@Bizbox:~# c=5
root@Bizbox:~# if [ $a = 0 -a $b = 0 ]&&[ $c != 0 ]; then
> echo success
> fi
success
注意方括号中前后的空格!
6. 在linux下shell脚本中if中用到or怎么写
linux下shell脚本的逻辑的or用运算符 || 表示,if中用到or的写法实例如下:
a=10
b=20
if[[$a-lt 50||$b-gt 50]]
then
echo"返回 true"
else
echo"返回 false"
fi
其中$a-lt100表示a<50 为真;$b-gt 50 表示b>50为假;真 or 假为真。
所以输出结果为:返回 true
(6)shell脚本ifo扩展阅读
1、shell中流程控制if基本语法介绍:
if condition
then
command1
command2 ...
commandN
fi
2、shell中的另一个逻辑运算符and (&&)用法实例介绍:
a=10
b=20
if[[$a-lt100&&$b-gt100]]
then
echo"返回 true"
else
echo"返回 false"
fi
输出结果为:返回 false
7. linux的shell 脚本里怎么用if 判断文件大小呀
需要几个工具 基本上思路是 用 配合awk取得文件大小 ,然后if判断
伪代码如下
s=` -k logfile|awk '{print $1}'`
if [ $s -gt 1024000000 ]
then
停止oracle监听进程
rm -rf logfile && touch logfile
启动oracle监听进程
else
continue
fi
8. 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
基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。
9. shell脚本中: if [ -f /FileA -a -O /FileB ]; then 语句中判断条件怎么理解,逻辑关系是什么
-a是and,左右条件两者都成立
-o是or,左右条件任意一条成立
10. shell中EOF的作用
这是 Here document 用法
EOF本意是 End Of File,表明到了文件末尾。
使用格式基本是这样的:
命令 << EOF
内容段
EOF
将“内容段”整个作为命令的输入。
你的代码里就是用cat命令读入整段字符串并赋值给list变量。
其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,只是一个起始和结束的标志罢了。
有个特殊用法不得不说:
: << COMMENTBLOCK
shell脚本代码段
COMMENTBLOCK
这个用来注释整段脚本代码。 : 是shell中的空语句。
搜索一下 Here document 你会明白更多。