当前位置:首页 » 编程软件 » shell脚本if

shell脚本if

发布时间: 2022-01-07 23:34:04

⑴ shell脚本if循环问题

刚看到,这么写可以实现,代码在linux上测过了:
#!/bin/bash
arr=(10 11 30)
for a in ${arr[*]}
do
ouput_s=$((ouput_s+a))
sum=$((sum+1))
done
echo "$ouput_s"
echo "$sum"

输出:
51
3

⑵ linux shell if语句中~是什么意思

if为判断语句,判断某个东西是否达到设定的条件。

1,格式为:

if语句格式
if条件
then
Command
else
Command
fi别忘了这个结尾

2,if的三种条件表达式:

ifcommandthen
if函数then命令执行成功,等于返回0(比如grep,找到匹配)执行失败,返回非0(grep,没找到匹配)
if[expression_r_r_r]then表达式结果为真,则返回0,if把0值引向then
iftestexpression_r_r_rthen表达式结果为假,则返回非0,if把非0值引向then

⑶ shell中if语句的问题

如果后面没有其它的命令可以加上exit
if [ "0" == "0"]; then
echo "yes"
exit
fi
如果还有其它,要改成一个判断
if [ "0" == "0"]; then
echo "yes"
else
echo "no"
fi

⑷ shell脚本 if判断条件问题

你既然已经知道这个文件叫什么就没有意义了。。。。理论上应该用find命令或者你知道这个目录在系统中的什么位置。
比如
ls | grep aaa
a=`echo $?`
b=`ls | grep aaa`
if [ $a -eq 0 ]
then
tar zcvf Name.tar.gz $b
else
echo 'Don't have this file.'
fi

⑸ 求linux shell 中if的写法

主要是格式问题:
if [[ $jg == false ]]; then
echo -e "\033[41;37m $sj $jg \033[5;m"
elif [[ $jg != false ]]; then
echo -e "\033[42;37m $sj $jg \033[1;m"
fi
注意中间的空格,假如是字符串匹配,最好加上引号。

⑹ shell脚本中 if 判断时候-s是什么意思

指的是文件大小非0时为真。

⑺ 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 匹配出行 在打印出这些行的第一段内容 )

⑻ shell脚本中的if中多条件语句如何写。

可以使用 if-elif-else 语法来写多条件语句。

1、首先要理解if-else的基本用法,if条件+then操作+else操作+fi闭合,书写方法如下:

2、 shell语法中[[ ]]和[ ]的主要区别

(1) [ ] 实际上是bash 中 test 命令的简写。即所有的 [ expr ] 等于 test expr。
对 test 命令来说, 用 -eq 要进行数字比较,而你此时传入字符串,就报错了。


(2) [[ ]] 是内置在shell中的一个命令,它比test强大的多。支持字符串的模式匹配(使用=~操作符时甚至支持shell的正则表达式)。逻辑组合可以不使用test的-a,-o而使用&& ||。

⑼ shell脚本中: if [ -f /FileA -a -O /FileB ]; then 语句中判断条件怎么理解,逻辑关系是什么

-a是and,左右条件两者都成立
-o是or,左右条件任意一条成立

⑽ shell脚本的if

_day=`echo `cal $_month $_year`|awk ’{print $NF}’`

这一句嵌套`符号有问题。不信你把这句注释掉看看是不是就没问题了。
两两匹配的原则是就近匹配,即这句会拆分为下面三段:
`echo `
cal $_month $_year
`|awk ’{print $NF}’`
这显然不是你预期的。

建议:
1)在需要多层嵌套的情况下,最好不要用``,用它的替代品$()。
2)多层嵌套一定要用``的话,里面的`要用反斜杠作跳脱处理(写成\`)。
建议你去看《shell十三问》,搜索一下就能找到,上面专门有写这个。

两种修改方法分别为:
1) _day=$(echo $(cal $_month $_year)|awk '{print $NF}')
2) _day=`echo \`cal $_month $_year\`|awk '{print $NF}'`

热点内容
小区高层消防逃生怎么配置 发布:2024-12-22 13:29:20 浏览:716
服务器配置光纤网卡ip 发布:2024-12-22 13:22:47 浏览:515
地图下载源码 发布:2024-12-22 13:18:40 浏览:393
navicat存储过程导出 发布:2024-12-22 13:12:44 浏览:299
androidservice线程 发布:2024-12-22 13:04:57 浏览:301
ntplinux服务器配置 发布:2024-12-22 12:28:23 浏览:268
android模拟机 发布:2024-12-22 12:26:08 浏览:609
贪玩蓝月密码如何修改 发布:2024-12-22 12:16:54 浏览:985
ps4无法上传存档 发布:2024-12-22 12:10:23 浏览:524
未转变者如何加服务器 发布:2024-12-22 11:58:28 浏览:903