本人对shell脚本刚刚接触,请大家指教,见笑了. 用ftp当天备份数据,我想通过比对文件时间并以星期分类存放数据 我想到的方法: cd /ftp ls -la |grep nfsdir |awk '{print $6"\t"$7}' echo `date` | awk '{print $2"\t"$3}' 这两个输出将列出月份和日期,我想对两个结果做个比对,如果相等,则执行cpoy,这个怎么写?能完成以星期分类存放么? [ 本帖最后由 jat_15 于 2009-2-25 11:17 编辑 ]
by jat_15 - Shell - 2009-02-25 15:01:40 阅读(29198) 回复(23)
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -e...
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -e...
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -e...
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -e...
#!/bin/sh cpasswd=sc b=x if [ "$cpasswd"="$b" ] then echo "equal" fi 为什么我运行后会打印equal呢,明明不等嘛。
本帖最后由 biubiuu 于 2015-03-10 11:50 编辑 我要更换网卡0的mac和ip,下面是/etc/network/interfaces 文件的一部分 auto eth0 iface eth0 inet static pre-up ifconfig eth0 hw ether 84:7E:40:EF:D6:C6 address 192.168.2.88 netmask 255.255.255.0 network 192.168.1.0 gateway 192.168.1.1 我是这么做的 ip=192.168.1.1 mac=01:01:01:01:01:01 sed -i -e "0,/^address/s/.*\(a...
我有一个文本 类似 8613302200008,460030902234084,1201,12,600101,2002-03-19 12:00:00,2013-06-29 22:00:50 8613302200009,460030918855095,1001,12,600101,2010-12-30 18:06:51,2011-09-12 05:30:21 我想替换第三列的值,如果是1201则替换成15 ,如果是1001则替换成10,这个应该怎么写? 谢谢~
突然想用shell写个像结构体那样子的数组,就是在数组里放置好多字符串。 我自己试验了一下 str=( "IP address" "Local directory" "remote directory" ) 按照上面的做法,通过${#str} 得到的值是10,不是我想要的3。 这应该怎么才能获取正确的值。