shell脚本ifr
㈠ linux shell 脚本中if语句的用法 在脚本中使用if if[! -w “$logfile” ] 为什
if[!-w"$logfile"]
thenecho"notwriteable"
echo"notwriteableagain"
fi
注意空格,shell里面有的地方必须有空格,有的地方必须没有空格。[ ]前后都要有空格
㈡ 如何用SHELL命令运行一个文件
1、Shell是命令解释器,所执行的文件有两种,一种是基于ELF文件格式的可执行文件,一种是基于Shell脚本格式的脚本文件。
2、不管是可执行文件还是shell脚本,如果存在于PATH变量所指明的路径中,shell会自动寻找相应的可执行文件,用户只需要输入可执行文件名或者脚本名即可执行。
3、如果可执行文件或者Shell脚本的存放位置不在PATH变量所指明的路径中,则需要通过".”来执行,比如下面的C语言写的hello world程序,需要输入./t才可以被shell运行。
㈢ shell脚本中: if [ -f /FileA -a -O /FileB ]; then 语句中判断条件怎么理解,逻辑关系是什么
-a是and,左右条件两者都成立
-o是or,左右条件任意一条成立
㈣ 解释一个shell 脚本程序
if[$#-lt1]#就是搞不明白我根本就没有声明变量哪来的变量啊
thenecho"usage:$0limite";exit1
fi
$#是bash内置变量,存放脚本的参数数量。
---------
limite=$1#这句话意思也不明白
$0 $1 $2,分别代表脚本本身的文件名,第一个参数,第二个参数,以此类推
---------
set`ls-a`#不明白这条命令的目的
通过set,将ls -a查到的内容赋值到$*中
---------
pwd#知道pwd是求绝对路径但是方这儿是干嘛呢
在这里没看出有什么特殊作用
---------
$0$limite#不理解啥意思
再次运行自己,就是简单地递归调用。
---------
taille=`ls-l$fich|(readplpgtr;echo$t)`#这句话看不懂
类似awk取各个域内容一样,将ls -l $fich的结果通过| read放入各个变量中。并显示大小那一列
---------
大概就这样。
㈤ 在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
(5)shell脚本ifr扩展阅读
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
㈥ 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
㈦ 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
㈧ 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
基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。
㈨ 在SHELL脚本里看到 if [ $# -lt 7 ]; then ,请高手详细解释
$#取得shell脚本参数个数,
-lt即lessthan,小于,
$0取得脚本名称(包含路径)
若判断参数个数小于7个,则用echo打印正确的使用方法,并用exit退出脚本。
Usage:脚本名称subjectanalysis_diranat_nameanat_dir_namesanlm_denoisednum_scansgcut
后面分别是7个参数。
其实,通常用`basename$0`来去除路径得到纯粹的脚本名,并且在退出脚本时将返回状态置为非0。
if[$#-lt7];
then
echo-e" Usage:`basename$0`subjectanalysis_diranat_nameanat_dir_namesanlm_denoisednum_scansgcut "
exit1
fi
㈩ 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 匹配出行 在打印出这些行的第一段内容 )