您的位置:首页 > 移动开发

java.lang.InstantiationException: org.jboss.seam.jsf.SeamApplicationFactory

2012-08-31 10:47 435 查看
1.Linux Shell脚本的字符串截取假设有变量 var=http://www.linuxidc.com/test.htm

一 # 号截取,删除左边字符,保留右边字符。echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.linuxidc.com/test.htm

二 ## 号截取,删除左边字符,保留右边字符。echo ${var##*/}##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符即删除 http://www.linuxidc.com/ 结果是 test.htm

举例:ACCOUNT=USER10 只想保留10 echo ${ACCOUNT##*[[:alpha:]]} 或者 echo ${ACCOUNT##*[a-z,A-Z]}
10

三 %号截取,删除右边字符,保留左边字符echo ${var%/*}%/* 表示从右边开始,删除第一个 / 号及右边的字符结果是:http://www.linuxidc.com

四 %% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符结果是:http:

五 从左边第几个字符开始,及字符的个数echo ${var:0:5}其中的 0 表示左边第一个字符开始,5 表示字符的总个数。结果是:http:

六 从左边第几个字符开始,一直到结束。echo ${var:7}其中的 7 表示左边第8个字符开始,一直到结束。结果是 :www.linuxidc.com/test.htm

七 从右边第几个字符开始,及字符的个数echo ${var:0-8:4}其中的 0-8 表示右边算起第八个字符开始,4 表示字符的个数。结果是:test

八 从右边第几个字符开始,一直到结束。echo ${var:0-8}表示从右边第八个字符开始,一直到结束。结果是:test.htm

四.分支语句

1.if单分支

if 表达式;then
语句
fi

1.1判断账号是否存在

vim f1.sh
#!/bin/bash
read -p "please input one user " ACCOUNT
if grep $ACCOUNT /etc/passwd &>/dev/null ;then
echo -e "\033[31m the user $ACCOUNT is exist\033[0m"
fi
&代表所有的输出信息
测试:
[root@mail ~]#bash f1.sh
please input onuser root
the user root is exist
不存在就不输出:
[root@mail ~]#bash f1.sh
please input onuser user100

2.if双分支

if 表达式;then
语句
else
语句
fi

#!/bin/bash
read -p "please input on user " ACCOUNT
if grep $ACCOUNT /etc/passwd &>/dev/null ;then
echo -e "\033[31m the user $ACCOUNT is exist\033[0m"
else
echo -e "\033[31m the user $ACCOUNT is not exist\033[0m"
fi

3.if多分枝

if 表达式1;then
语句1
elif 表达式2; then
语句2
elif 表达式3;then
语句3
。。。
fi

4.case

case $变量 in
变量值1)
语句1;;
变量值2)
语句2;;
变量值3)
语句3;;
*)
语句n;;
esac

例3截取文件第一个字符,判断是什么文件

[root@mail ~]#ll /root/f1.sh
-rw-r--r-- 1root root 227 Jul 6 19:47 /root/f1.sh
[root@mail ~]#STRING=`ll /root/f1.sh`
[root@mail ~]#echo $STRING
-rw-r--r-- 1root root 227 Jul 6 19:47 /root/f1.sh
[root@mail ~]# echo ${STRING:0:1}
-
赋值:
[root@mail ~]#FIRSTCHAR=${STRING:0:1}
[root@mail ~]#echo $FIRSTCHAR
-
[root@mail ~]#ll /root/abc //显示abc下内容
[root@mail ~]# ll -d /root/abc 显示abc目录
drwxr-xr-x. 5root root 4096 Apr 2 15:35 /root/abc

[root@mail ~]#ls -l -d /root/abc
drwxr-xr-x. 5root root 4096 Apr 2 15:35 /root/abc

-l use a long listing format
-d, --directory
list directory entries instead of contents,and do not dereference symbolic links

#!/bin/bash
read -p "please input one dir " DIR
read -p "please input one OBJ " OBJ
if [ -e $DIR/$OBJ ] ; then
STRING=`ls -l-d $DIR/$OBJ`
FIRSTCHAR=${STRING:0:1}
case$FIRSTCHAR in
l)
echo -e"\033[31m the $DIR/$OBJ islink\033[0m"
;;
d)
echo -e"\033[31m the $DIR/$OBJ isdirctory\033[0m"
;;
b)
echo -e"\033[31m the $DIR/$OBJ isblock\033[0m"
;;
c)
echo -e"\033[31m the $DIR/$OBJ ischar\033[0m"
;;
-)
echo -e"\033[31m the $DIR/$OBJ isfile\033[0m"
;;
*)
echo"unknown"
;;

esac

else
echo -e"\033[31m the $DIR/$OBJ is not exist\033[0m"
fi

5.for循环

循环
for 变量 in {变量值};do
循环体
done

for 变量 in $(seq $变量1 $变量2);do
循环体
done

for 变量 in 变量值;do
循环体
done

5.1算术运算

let expression
$[expression]
$((expression))
+ - * / %
算术运算 let 表达式
$((表达式))
$【表达式】
运算符
+ - * / %

加法
[root@mail ~]#let A=3+5
[root@mail ~]#echo $A
8
余数
[root@mail ~]#let A=10%2
[root@mail ~]#echo $A
0
[root@mail ~]#A=$[5+5]
[root@mail ~]#echo $A
10
[root@mail ~]#A=$((5+5))
[root@mail ~]#echo $A
10

方法一 (for)从1加到100

#!/bin/bash
let SUM=0 //定义一个SUM变量,并使其初值为0
for I in {1..100}; do
let SUM=$SUM+$I
done
echo $SUM
结果
[root@mail ~]#bash f1.sh
5050

方法二 (for)从1加到100

#!/bin/bash
let SUM=0
for I in $(seq 1 100); do
let SUM=$SUM+$I
done
echo $SUM
#!/bin/bash

方法三 (for)从1加到100

let SUM=0
for((I=1;I<=100;I++));
#for I in $(seq 1 100);
do
let SUM=${SUM}+$I
done
echo ${SUM}

6.while语句

while 【判断式】;do

循环体
done

6.1奇偶数相加

奇数:
[root@mail ~]#vim f3.sh
#!/bin/bash
let SUM=0
let I=0
while [ $I -le 100]; do
if [$[$I%2] -ne 0 ]; then
let SUM=$SUM+$I
fi
let I=$I+1
done
echo $SUM
[root@mail ~]#bash f3.sh
2500

8.cut和while read

while read 变量;do
循环体
done <文件

8.1判断普通账号

[root@mail ~]#echo $SHELL
/bin/bash
[root@mail ~]#echo "$SHELL"
/bin/bash
[root@mail ~]#echo '$SHELL'
$SHELL

``反引号----------〉〉用指令(命令)取代
[root@mail ~]#echo `date`
Mon Jul 703:35:08 CST 2014

#!/bin/bash
while read LINE ; do
ACCOUNT=`echo $LINE |cut -f1 -d:`
ACCOUNTID=`echo $LINE |cut -f3 -d:`
if [ $ACCOUNTID -ge 500 ]; then
echo -e"the $ACCOUNT is \033[31mnormal\033[0m"
else
echo -e "the $ACCOUNT is \033[31msystem\033[0m"
fi

done </etc/passwd

五.函数

功能代码块
现定义 后引用

返回 return
function 名称()

代码块


函数名称

名称()

代码块


函数名称

实例1. 找出1个目录下大于1k的文件,转移到另一个目录
方法一:
#!/bin/bash
find /home/user1/test1 -type f -size +1k | while read file
do
mv $file /home/user1/test2
done
方法二:
#!/bin/bash
for I in `find /home/user1/test -type f -size +1k`;
do
mv $I /home/user1/test2
done
方法三:

#!/bin/bashfind /home/user1/test1 -type f -size +1k >/home/user1/test.txtdomv $I /home/user1/test2done 使用IFS读文件说明:默认情况下IFS是空格,如果需要使用其它的需要重新赋值#!/bin/bashIFS=:while read field1 field2do echo $field1$field2done < a.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐