shell脚本else
A. shell if else if
if 与elif是同等级的,进入了if分支,elif是不会进入的
B. shell脚本,条件控制语句求助
#!/bin/bash
test_file(){
[ -f $1 ] && echo $1" 文件已存在" || touch $1
}
test_file /home/app/zhu/A.txt
test_file /home/app/zhu/B.doc
C. 小弟初学shell,各位大侠请帮忙看一下啊,下面语句为啥一直走的是else分支
[ ! -n $pid1 ] 写法错误,-n用于判断字符串是否为空。
对于字符串变量,建议加双引号,否则会有意想不到的错误。
以下几种写法都是可以的:
[-z"$pid1"]
[!-n"$pid1"]
[!"$pid1"]
["$pid1"=""]
你完全可以自己简单测试:
pid1=""
[!-n$pid1]&&echohi#不会打印hi
[!-n"$pid1"]&&echohi#会打印hi
[-z"$pid1"]&&echohi#会打印hi
另外,[ -n "$pid1" ] 中-n可省略,可直接写为 [ "$pid1" ],参见《鸟哥的Linux私房菜(基础学习篇)》 shell脚本那一章节。
D. shell中if else怎么判断fi个数
统计文件中fi出现的次数吗?
cat <filename>|grep -c "fi"
或者vi到文件里,非编辑模式下输入/fi,再逐次按n键,检索fi
E. 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而使用&& ||。
F. 菜鸟请教shell编程问题 case if else
#
# 用一个while loop 直到不想玩了为止
#
while :
do
#
# ask user to enter the 1st number
#
read -p "please input the first number (or 'q' to quit): " first_num
if [ "$first_num" == "q" ]
then
echo "bye!"
exit
else
# check if the input is all digits
re='^[0-9]+$'
if ! [[ $first_num =~ $re ]]
then
echo "first_num is non-numeric, 重来!"
continue
fi
fi
#
# ask user to enter the 2nd number
#
read -p "please input the second number (or 'q' to quit): " second_num
if [ "$second_num" == "q" ]
then
echo "bye!"
exit
else
# check if the input is all digits
re='^[0-9]+$'
if ! [[ $second_num =~ $re ]]
then
echo "second_num is non-numeric, 重来!"
continue
fi
fi
#
# ask user to enter the operator (+,-,*,/)
#
read -p "please enter 运算符号(+,-,*,/): " operator
case $operator
in
'+') let result=$first_num+$second_num
echo "$first_num + $second_num = " $result
;;
'-') # 这些你自己可以做了
;;
'*') # 这些你自己可以做了
;;
'/') # 这些你自己可以做了
;;
*) # anything else is invalid
echo "Invalid operator, please enter '+','-','*','/', try again!"
;;
esac
done
G. shell脚本if then else的问题
问题出在echo("true")或者echo("false")这一句,ftp里面不支持,你手动执行一下就知道了。
ftp>echo("true")
?Invalidcommand
ftp>help
Commandsmaybeabbreviated.Commandsare:
! debug mdir sendport site
$ dir mget put size
account disconnect mkdir pwd status
append exit mls quit struct
ascii form mode quote system
bell get modtime recv sunique
binary glob mput reget tenex
bye hash newer rstatus tick
case help nmap rhelp trace
cd idle nlist rename type
cp image ntrans reset user
chmod lcd open restart umask
close ls prompt rmdir verbose
cr macdef passive runique ?
delete mdelete proxy send
H. shell脚本 elseif吗
有的。可以按照下面的格式来
#!/bin/bash
if[];then
XXX
elif[];then
XXX
else
XXX
fi
I. shell脚本, if语句必须要有else吗
不必须,可以直接
if 【条件】
【要做的内容】
fi;
这样就可以了。也可以用else
if 【条件1】
【要做的内容1】
else if 【条件2】
【要做的内容2】
fi;
J. shell编程,if,else之后怎么执行多条语句只能用&&
#!/bin/bash
TODAY=$(date +"%d")
if [ $TODAY == 01 ]; then
echo $(date +"%Y-%m-%d %H:%M:%S.%N" | cut -b 1-23) "full backup 01. "
echo $(date +"%Y-%m-%d %H:%M:%S.%N" | cut -b 1-23) "fffffff. "
echo $(date +"%Y-%m-%d %H:%M:%S.%N" | cut -b 1-23) "ddddddd. "
echo $(date +"%Y-%m-%d %H:%M:%S.%N" | cut -b 1-23) "f123456 "
elif [ $TODAY == 15 ];then
echo $(date +"%Y-%m-%d %H:%M:%S.%N" | cut -b 1-23) "full backup 15. "
tar Jcf /opt/$(date +"%Y%m%d").tar.xz /tmp/*
else
echo '111111111'
fi