需求:将tcl在c++调用的路由算法名字(函数名)输出,并作为变量赋值给文件名字,但就怎么将函数名字打印出来就思考了很久,并尝试了其他网站“在shell脚本使用tcl变量、如何在bash脚本打印tcl变量、NS2,return一个数值”,或许是我方法问题,反正就无成功过。。
所以换了思路,就是直接cpp文件了设置打印出来,然后在bash捕捉打印内容,并按关键字选择当前行,最后awk筛选。
原来就是一行字母的事情,设置了Algorithm
这个变量,然后 ``
这个符号是关键,区别于字符串用的" "
,在``
是可以运行的,里面放需要运行的文件,通过grep
到目标行,在awk
筛选。
Algorithm=`ns sat-iridium.tcl | grep "the ALG is:" |awk -F ":" '{print $2}' `
echo = $Algorithm
这是我打印出来的内容,但是只要:
后面的AC
以下是错误示范,虽然打印出来了,但根本没有赋值
Algorithm= echo ns sat-iridium.tcl
echo = $Algorithm