
: No such file or directorybash
你的shell脚本有可能是在windows下编写的,然后在转移到linux执行的。
#vi filename
然后用命令
:set ff ---------查看时dos还是unix
若是dos字样, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出 再运行一遍看。
建立脚本最好在linux下,使用touch filenamesh来创建,再用vi filenamesh来编写脚本命令。
例如:
#touch ddsh
#vi ddsh
然后输入下面的内容。
#!bin/bash
#文本txt每一行复制并输出----注释
cat 123txt|while read var;do
echo $var
done
exit 0
保存后,使用
#bash ddsh
或者
#chmod 777 sssh
#/ddsh
就可以运行啦。
话说我在redhat下执行未报错,结果如下:
[root@HZHG-STD-WEB-P3 ~]# sh testMon Nov 25 08:38:51 CST 2013
a:
1
1
2
1
3
1
4
1
Mon Nov 25 08:38:51 CST 2013
不过我把开头释义代码修改成 #!/bin/bash了,你那个开头释义我从没用过:
#!/bin/bashdate
awk -F"|" 'BEGIN{
a="aunl"
print "a:"
while(getline < a)
{
print $line ###########
a_hash[$line]=1
print a_hash[$line]
}
close(a)}'
date
1、在shell中对一个变量取绝对值,可以通过函数来实现,如果是大于等于0的数返回其本身,如果是小于0的数,则取其相反数。
2、具体可以参考如下示例代码,编写了一个名为abs的脚本函数,然后循环读取数据,用户可以循环测试,按q键退出脚本。
function abs(){
if (($1>=0));then
return $1
else
return $((-$1));
fi
}
while ((1));do
read -p "input int value to get abs value:" i;
if (($i=='q'));then
break;
fi
abs $i
echo "input value:$i,abs alue:$"
done
3、执行效果如下图所示:
以上就是关于linux shell 如何把txt文本中每一行提取出来赋值给一变量,再输出这一变量全部的内容,包括:linux shell 如何把txt文本中每一行提取出来赋值给一变量,再输出这一变量、shell脚本AWK命令中变量$line的用法、在Shell中怎样对一个变量取绝对值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)