急寻脚本案例
一怎样用脚本编写菜单模式的操作?
具体要求AIX机器上,有ksh,csh,bsh,就是没有bash,没有dialog
需要写成菜单模式的,可以和用户交互,让用户输入数据(不是从命令行输入)
急!
我也知道不该放在这里……但是急啊,等下午或者明天我就把这个帖子mv到shell版面去
这里说的菜单模式就是对话框那样的样子,如果没有,那么任何形式可以和用户方便的交互都可以啦
二
下面是一个程序的输出
TIME TRAHIS HISBAL
------------------- ---------- ----------
2005-05-09.09:24:51 2074 870
如何把2074和870提取出来保存到TRAHIS和HISBAL两个变量里面呢? :shock: 错字错到你这样的程度,佩服佩服
你问的我不会,不好意思! 下面是一个程序的输出
TIME TRAHIS HISBAL
------------------- ---------- ----------
2005-05-09.09:24:51 2074 870
如何把2074和870提取出来保存到TRAHIS和HISBAL两个变量里面呢? awk can do the work,but I am not good at awk
TIME TRAHIS HISBAL
------------------- ---------- ----------
2005-05-09.09:24:51 2074 870
如何把2074和870提取出来保存到TRAHIS和HISBAL两个变量里面呢? cdialog之类的都没有么?
那你惨了,用C吧 没有编译器,怎么用c嘛 :neutral: awk/sed这两个工具是写脚本的强悍工具啊~~~ VimChina, 我知道啊,可是现在时间不允许我现学啦,渴求牛人帮忙给个大概的写法 考虑装一个dialog吧,结合sed/awk,差不多可以搞定了
不过我awk/sed不熟 :oops: VimChina, 我知道啊,可是现在时间不允许我现学啦,渴求牛人帮忙给个大概的写法
用awk,提取各个域,然后赋值给变量
你简单看看教材就能搞定,我有点生疏了 :oops: 应该是这样吧:
# awk {print $2}
这样会打印出第二个域的值,就是:
TRAHIS
----------
2074
忘的差不多了,只能给个大概了
抱歉 下面是一个程序的输出
TIME TRAHIS HISBAL
------------------- ---------- ----------
2005-05-09.09:24:51 2074 870
如何把2074和870提取出来保存到TRAHIS和HISBAL两个变量里面呢?
看看这个:
zhyfly@zhyfly:~/bash$ cat tmp TIME TRAHIS HISBAL
------------------- ---------- ----------
2005-05-09.09:24:51 2074 870
zhyfly@zhyfly:~/bash$ cat tmp|sed -n '3p'|awk '{TRAHIS=$2;HISBAL=$3;print TRAHIS,HISBAL}'
2074 870
zhyfly@zhyfly:~/bash$ 还有上面的方法只能在awk内部使用,而不能直接这样提取出来,因此上述命令执行完后并不能得到这两个变量真正的值!如果你想要在awk外使用这两个变量,需要另外想办法:)
所以把你想要做的说的再稍微详细点,看能不能解决:)
第一个问题我没有搞清楚什么意思,再看看!:) TRAHIS=`./getsummary.sh| tail -2 |head -1 | awk '{print $2}'`
这样写虽然有点丑陋,但是将就用吧.
谢谢楼上诸位的帮忙
下一个问题,哦,应该说第一个问题是:
我现在是用的最简单的方式来实现用户交流,就是我在屏幕上输出几行选项,然后读取用户的输入1,2,3,然后判断后执行操作,真个嘎教本是在一个大的if-else循环里面,下一步做成函数后脚本就好看一点,但是整个脚本毫无界面可言(类似于编译内核时那种make config),我希望做成make menuconfig那样的,诸位了解了吧,我知道很难,算了…… 再问一个问题吧,我要在一个if里面判断
if [ "$TRAHIS" = "$TRAHISbak" ] AND [ "$HISBAL" = "$HISBALbak" ]; then
echo ok
fi
done
说是参数过多?
应该怎么写呢?谢谢……