当前位置: 技术问答>linux和unix
一个关于shell if语句的问题 急求帮忙
来源: 互联网 发布时间:2017-01-18
本文导语: 我想比较用shell的if语句比较:如果 s1不是以html或者txt结尾的字符串 那么就替换s1 分别试过 if [ ! "*.html" -o ! "*.txt" ] if [ $s1!="*.html" -o $s1!="*.txt" ] 都出错 ? 请问 用 if [] ...
我想比较用shell的if语句比较:如果 s1不是以html或者txt结尾的字符串 那么就替换s1 分别试过 if [ ! "*.html" -o ! "*.txt" ]
if [ $s1!="*.html" -o $s1!="*.txt" ] 都出错 ? 请问 用 if [] 能实现吗
if [ $s1!="*.html" -o $s1!="*.txt" ] 都出错 ? 请问 用 if [] 能实现吗
|
举了三个例子,直接替换,你看看。有很多情况要判断的话是不是考虑用sed,网上很多sed的例子。
我是参考了这篇文章:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html
文章写着支持正则表达式,我没有试出来。
我是参考了这篇文章:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html
文章写着支持正则表达式,我没有试出来。
[root@RHEL6A scripts]# more s4.sh
s1='/homt/html/txt/abcd/asdf.html'
echo $s1
s1=${s1/%txt/EEE}
s1=${s1/%html/EEE}
echo $s1
s1='/homt/html/txt/abcd/asdf.txt'
echo $s1
s1=${s1/%txt/EEE}
s1=${s1/%html/EEE}
echo $s1
s1='/homt/html/txt/abcd/asdf.abc'
echo $s1
s1=${s1/%txt/EEE}
s1=${s1/%html/EEE}
echo $s1
[root@RHEL6A scripts]# ./s4.sh
/homt/html/txt/abcd/asdf.html
/homt/html/txt/abcd/asdf.EEE
/homt/html/txt/abcd/asdf.txt
/homt/html/txt/abcd/asdf.EEE
/homt/html/txt/abcd/asdf.abc
/homt/html/txt/abcd/asdf.abc
[root@RHEL6A scripts]#
|
#!/bin/bash
echo $1 | awk '/.*.html/{print}';
|
楼主说html或者txt结尾,这个可以同时判断两种情况吗?我的虚拟机关了就不启动来试了,回帖直接问一下
|
#!/bin/bash
echo $1 | awk '/.*.(html|txt)/{print}';
|
s2=${s1##*.}
[[ s2 != "txt" && s2 != "html" ]] && s1=string
|
这论坛没编辑功能吗?我去.
写掉了一个 $
s2=${s1##*.}
[[ $s2 != "txt" && $s2 != "html" ]] && s1=string
写掉了一个 $
|
改下,加个结尾符"$":
echo $1 | awk '/.*.(html|txt)$/{print}';
echo $1 | awk '/.*.(html|txt)$/{print}';