shell变量命令行 linuxC程序中如何获取shell的脚本输出呢?

[更新]
·
·
分类:互联网
4066 阅读

shell变量命令行

linuxC程序中如何获取shell的脚本输出呢?

linuxC程序中如何获取shell的脚本输出呢?

你说的是Linux C程序获取shell脚本(命令)输出吧,这里简单介绍3种方式,分别是临时文件、匿名管道和popen函数,感兴趣的朋友可以尝试一下:
临时文件
这种方式最容易实现,基本思想是调用C语言标准库的system函数,运行shell命令或脚本,将输出结果重定向到一个临时文件中,然后读取临时文件,获取shell执行结果,测试代码如下,非常简单,输入参数分别为shell命令(脚本)和临时文件名,最终结果保存在临时文件中:

shell中如何将只读变量转换为普通变量?

shell中不能将只读变量转换为普通变量,只读变量是通过命令readonly来定义。

怎么写一个shell脚本传入参数?

很简单,写个循环
if [ $# -eq 0 ] ##判断参数是否存在
then
exit ##不存在退出
else
for a in $* ##存在话,取参数放入a中循环
do
b`echo $a|tr [a-z] [A-Z]` ###将a改成大写
echo CC$b ##拼接成功CCA
done
fi

shell脚本中如何判断一个变量是否为日期类型?

这个用linux的date命令就可以实现,主要是判断当前的小时是否位于0晨就可以。代码大致如下:
#!/bin/sh currentHour$(date %H) if [ $currentHour -eq 00 ] then currentTime$(date %s)
tmp$(($currentTime-3600))
echo $(date -d #34@$tmp#34 %Y-%m-%d)
else echo $(date %Y-%m-%d) fi

bashshell的优缺点?

一、优点方面:
的语法和结构比较简单,易于掌握
2.学习和使用也比较方便,上手比较容易
3.常用命令也比较好记,不清楚的情况下,可以通过man命令迅速找到相关的说明
是解释型语言,运行之前不需要编译
5.文本处理方面,主要依赖于awk、sed这两把尖刀,能够方便快捷地处理相当复杂的问题
6.程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务
二、缺点方面:
1.弱类型语言,对变量定义的查检不是很严格
2.效率上存在的劣势:shell相当于一个接口,大部分的功能全部靠外部程序来完成,如shell在调用awk、sed的进程来处理文件时,需要产生一个新的进程。
3.I/O性能不高:之前看过一篇文章介绍,shell的I/O性能比perl要差,我会进一步做测试来验证这个观点是否正确。
4.一些细节上的不足:向awk传入shell定义的变量时,表达式比较复杂,且对shell的变量是只能读取而不能修改