一个关于shell if语句的问题 急求帮忙
我想比较用shell的if语句比较:如果 s1不是以html或者txt结尾的字符串 那么就替换s1 分别试过 if [ ! "*.html" -o ! "*.txt" ]
if [ $s1!="*.html" -o $s1!="*.txt" ] 都出错 ? 请问 用 if [] 能实现吗
------解决方案--------------------举了三个例子,直接替换,你看看。有很多情况要判断的话是不是考虑用sed,网上很多sed的例子。
我是参考了这篇文章:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html
文章写着支持正则表达式,我没有试出来。
Assembly code
[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]#
------解决方案--------------------
C/C++ code
#!/bin/bash
echo $1 | awk '/.*\.html/{print}';
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
这论坛没编辑功能吗?我去.
VB.NET code
s2=${s1##*.}
[[ $s2 != "txt" && $s2 != "html" ]] && s1=string
------解决方案--------------------
改下,加个结尾符"$":
echo $1 | awk '/.*\.(html|txt)$/{print}';