shell里的` ` $( ) ${ } expr $(( ))
来源:互联网 发布:软件著作权收费标准 编辑:程序博客网 时间:2024/05/22 03:27
转自:http://blog.sina.com.cn/s/blog_6151984a0100ekz2.html
所有UNIX命令,要取结果或输出,都要用$( )或反引号` `
tt=` file test.sh `echo $tt#sh test.sh
test.sh: ASCII text
tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`将过去24小时(-mtime –2则表示过去48小时)内修改过的文件tar在一起
[mac@machome ~]$ vi test.sh
echo `ps -ef | grep syslog`
root 1363 1 0 12:15 ? 00:00:00 syslogd -m 0 mac 15032 15030 0 18:13 pts/2 00:00:00 grep syslog
[macg@machome ~]$ vi test.sh
var=$(ls -l)
echo $var[macg@machome ~]$ sh test.sh
total 44 -rw-rw-r-- 1 macg macg 126 Jun 8 23:40 1 -rw-rw-r-- 1 macg macg 0 Jun 8 17:53 100 -rw-rw-r-- 1 macg macg 16 Jun 9 19:00 111.txt -rw-rw-r-- 1 macg macg 15 Jun 9 19:00 22.txt -rw-rw-r-- 1 macg macg 15 Jun 9 19:00 33.txt -rw-rw-r-- 1 macg macg 23 Jun 12 19:20 test.sh
count=$(more iftmp|wc -l)
while [ $i -le $count ]
常见使用:echo内,用$( )取awk和sed对某些命令修饰后的效果
[macg@machome ~]$ vi test
#choose a iinterface to config
/sbin/ifconfig -a | awk '$2=="Link" {print($1,$3)}' >iftmp
echo "choose one of interface to config"
i=1
count=$(more iftmp|wc -l)
while [ $i -le $count ]
do
echo "$i)-------- $(sed -n "${i}p" iftmp)"
ii=$(($i+1))
done
choose one of interface to config
1)-------- eth0 encap:Ethernet
2)-------- lo encap:Local
3)-------- sit0 encap:IPv6-in-IPv4
give the interface a host name[such as:xxx-hme0]:
$ vi ttt.sh
GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"
GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"
echo $GONE$ sh ttt.sh
(ServerType|BindAddress|Port|AddModule|ClearModuleList|AgentLog|RefererLog|RefererIgnore|FancyIndexing
ttt=${REMOTEHOST}
echo ${ttt}ttt=$REMOTEHOST
echo $ttt[macg@localhost ~]$ sh ttt.sh
192.168.1.11
192.168.1.11
shell语言里没有运算公式,必须借助expr语句实现:
expr 变量 ‘+-x /’ 变量expr $a '+' $bexpr 常数 ‘+-x /’ 常数[mac@machome ~]$ expr 3 '+' 2
5运算符号都要加引号,单引号双引号均可
输出是结果
因为expr表达式返回的是"返回值",不是"结果"
[mac@machome ~]$ vi test.sh
expr 3 '+' 2
echo $?[mac@machome ~]$ sh test.sh
5
0
var = expr $a '+' $b
echo "final is $var"var=$(expr $a '+' $b)
echo "final is $var"test.sh: line 7: var: command not found
加法完成后结果赋值出错
final is
[mac@machome ~]$ vi test.sh
if [ expr 3 '+' 2 ] ; then
echo no5
else
echo is5
fi[mac@machome ~]$ sh test.sh
test.sh: line 1: [: too many arguments
is5
[mac@machome ~]$ vi test.sh
if
echo no5
else
echo is5
fi[mac@machome ~]$ sh test.sh
5
no5
不过如果要进行结果判定,加$(),就必须用[ ]了,因为把它当作表达式了
[macg@machome ~]$ vi test.sh
if [ $(expr 3 '+' 2) != 5 ];then
echo no5
else
echo is5
fi[macg@machome ~]$ sh test.sh
is5
while [ $i -le $count ]
do
command
i=$(($i+1))
done
echo input:
read i
i=$(($i+1))
echo $i
read i
i=$[$i+1]
echo $i[macg@localhost ~]$ sh ttt.sh
input:
6
7
input:
6
7
if (( $# != 3 )); then
fiif [ $# != 3 ]; then
fi[macg@localhost ~]$ sh ttt.sh 1 2
usage: ttt.sh host user passwd[macg@localhost ~]$ sh ttt.sh 1 2
usage: ttt.sh host user passwd
0 0
- shell里的` ` $( ) ${ } expr $(( ))
- shell里的 ` ` $( ) ${ } expr $(( ))
- shell里的` ` $( ) ${ } expr $(( ))
- shell里的` ` $( ) ${ } expr $(( )) (
- shell里的` ` $( ) ${ } expr $(( ))
- shell里的` ` $( ) ${ } expr $(( ))
- Linux shell 里的expr
- shell的expr命令
- Shell expr的用法
- Shell expr的用法
- shell中expr的用法
- shell - 关于expr的用法
- Shell 中expr的使用
- shell expr 的使用注意事项
- shell expr
- shell - 关于expr的用法zz
- shell编程中expr的用法
- shell入门之expr的使用
- VC6.0 error LNK2001: unresolved external symbol _main解决办法
- 浅谈~云计算
- 数据库中存储过程、函数、触发器的区别
- redis和memcached 对比
- 移动端下拉刷新、上拉加载更多 Zepto/jQuery插件
- shell里的` ` $( ) ${ } expr $(( ))
- 从一个简单例子了解action、store、reducer
- Xshell安装rz/sz命令
- 工作笔记:box-shadow 的用法
- iOS 联系客服
- ASP.NET Core实战之权限管理系统
- SAP ABAP入门学习-基本语法
- CCF火车购票
- tomcat 使用第三方机构ca证书