Linux是世界上更流行的开源操作系统之一,也是一个非常强大的平台,可以帮助用户实现多种功能。Linux发行版在开发和调试过程中需要经常涉及到变量类型转换技巧,这不仅可以提高代码的效率和灵活性,还能增加代码的可读性和可维护性。本文将详细介绍Linux变量类型转换技巧。
1.字符串转整型
很多时候需要将字符串转换为整型,可以用C标准库函数atoi(ASCII to integer),它可以将一个字符串转换为对应的整数值,字符串必须是以数字字符开头,否则返回0。例如:
char s[]=”1234″;
int x=atoi(s);
这样可以将字符串“1234”转换为整数值1234。
2.整型转字符串
将整型转换为字符串可以使用C标准库函数itoa(integer to ASCII),但是Linux中并没有该函数。可以使用sprintf函数来实现,该函数可以将格式化后的输出写入一个字符数组中:
int x=1234;
char s[10];
sprintf(s,”%d”,x);
这样就可以将整数值1234转换为字符串“1234”。
3.字符串转浮点型
将字符串转换为浮点数,可以使用C标准库函数atof(ASCII to float),该函数接收一个字符串参数,返回对应的浮点数值。例如:
char s[]=”123.45″;
float f=atof(s);
这样可以将字符串“123.45”转换为浮点数值123.45。
4.浮点型转字符串
将浮点数转换为字符串,可以使用C标准库函数ftoa(float to ASCII),但是Linux中并没有该函数。可以使用sprintf函数来实现,该函数可以将格式化后的输出写入一个字符数组中:
float f=123.45;
char s[10];
sprintf(s,”%f”,f);
这样可以将浮点数值123.45转换为字符串“123.450000”。
5.字符数组转字符串
字符数组经常被用作字符串,但是有时候需要将字符数组转换为字符串。可以使用C标准库函数strcpy(string copy),它可以复制一个字符串到另一个字符数组中。例如:
char s[]={‘h’,’e’,’l’,’l’,’o’};
char t[10];
strcpy(t,s);
这样可以将字符数组s复制到字符数组t中,实现将字符数组转换为字符串。
6.字符串转字符数组
如果需要将字符串转换为字符数组,可以使用C标准库函数strncpy(string copy with n characters),它可以复制一个字符串的前n个字符到另一个字符数组中。例如:
char s[]=”hello”;
char t[10];
strncpy(t,s,3);
这样可以将字符串“hello”的前3个字符复制到字符数组t中,实现将字符串转换为字符数组。
7.整型转字符数组
如果需要将整数值转换为字符数组,可以使用C标准库函数sprintf将整数转换为字符串,然后使用strcpy将字符串复制到字符数组中。例如:
int x=1234;
char s[10];
char t[10];
sprintf(s,”%d”,x);
strcpy(t,s);
这样可以将整数值1234转换为字符数组t[]={‘1′,’2′,’3′,’4’}。
通过本文的学习,我们可以发现,Linux变量类型转换技巧是非常简单和实用的。对于这些技巧的熟悉程度也会直接关系到我们编写的代码的效率和质量。因此,在实际开发中,我们应该经常运用这些技巧,并不断地积累和从而提高自己在Linux开发中的编程能力。
成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-869222202.1.1 本地变量
定义:是在用户现在的shell生命期的脚本中使用;
例:$name=”Red Hat Linux” #把变量设置为Red Hat Linux
$echo ${name} or #显示变量内容
=$echo $name #等同上面的语意
Red Hat Linux #显示其设定州族内容,
$set | grep “name” #查看刚才所设定的内容,或不加’grep “name”‘查看用户自己所有的本地变量,
$readonly name #把name这个变量设置为只读变量,不允许再次设置,这可参考变量定义;-_-!
$name=”He SenLin” #重新赋值
bash:name:readonly variable #只读文件系统
$readonly #查看系统存在的只读文件
附:重新登录一下系统,再次用
$echo ${name}
#本地变量就不存在了,
说明本地变量只能存活在用户shell的生命周期中,重登录就不在了,
2.1.2 环境变量
定义:环境变量用于所有用户进程,包括编辑器,脚本和应用,登录进程为父进程,shell中执行的用户进程均为子进程,不像本地变量只用于现在的shell.
存在目录在所有用户的主目录下/.bash_profile或
如何设置环境变量?之一种方法就是编辑上面的二个文件,还可以用”export”进哪迹肆行设定或更改;这可不像本地变量只需 name=”Red Hat Linux”那样简单,但却可以把本地变量更改为环境变量;只须在本地变量结束后,输入:export ;例,我们把name由本地变量修改为环境变量,我们可以这样做;
#name=”Red Hat Linux” #本地变量
#export name #变量name由本地升为环境
当然也可以用下面这种方法;
#export name=”Red Hat Linux” #直接定义name为环境变量;
定义后,可通过env进行查看,不知道上面的本地环境变量由哪个命令进行查看你记住了没有?,演示一下查李轿看现在定义的环境变量;
#env | grep “name”
Red Hat Linux
同样不加后面grep “name”,这个参数也是查看所有的环境变量;更同样的是我们也可以运行readonly这个参数给name以只读属性;
Tips:环境变量就是全部包含在本地变量中,注意一点,本地变量不能运行在全部进程中,只有环境变量可以,再不懂就联想一下人与自然吧;-_-!还是不会?用绝招:
#you=myfriend #设置本地变量name为myfriend
#echo ${you} #查看一下是否成功
myfriend #成功
#sh #更换shell环境等同重登录,这相当一个
sh-2.05b#echo $you #用户子进程
#没显示,说明不存在,真的不存在?
sh-2.05b#exit #返回bash环境
#echo $you #再次查看;
myfriend #又出来了,怎么回事?
#export you #把变量you设为环境变量;
#sh #再试一次;
sh-2.05b#echo $you
myfriend #ok,you see?
再不懂,,你就把我杀了吧,,什么,你不知道我住在哪?汗-_-!
再补充一点,就是在sh进程中设置环境变量是可以写回bash环境中,因为bash是父进程,只有老的才有小的,小的怎么才能有老的哩?
2.1.3 变量替换
定义:用变量的值替换它的名字.
查看方式:echo
可以用echo显示可以单个变量的取值;
#str=”this is example” #设置本地变量
#echo “can you see `echo $str`” #显示
cat you see this is example #替换就到这了,不明白明再来
变量替换续
除了上面的这个方式以外还有五种哦;别急,一个一个来;-_-!
格式 定义
${variable name} 显示实际值到variable name 1
${variable name :+value} 如果设置了variable name,就把value显示,
未设置则为空; 2
${variable name:-value} 如果设置了variable name,就显示它,未设置就显示
value>; 3
${variable name:?value} 未设置提示用户错误信息value; 4
${variable name:=value} 如未设置就把value设置并显示, 5
变量清除:
unset
#echo $name #变量 name是否存在?
Red Hat Linux #存在
#unset name #清除name变量
#echo $name #是否成功
#成功
注意:如果用readonly限制了只读属性就会失败,还有怎么从环境变量中去掉那个变量呢?还记的用哪个设定环境变量的吗?对.export,只须在它后面加”-n”参数即可
2.1.4 位置变量
定义:位置变量表示$0,$1,$2,….$9
$0 $1 $2 $3 $4
脚本名 A B C D
向脚本中使用位置参数;
向系统命令传递参数;
例:./test
#vi /test#创建并编辑/test文件
#!/bin/bash
#test
echo “这是脚本的之一个名称: $0”
echo “这是脚本的第二个位置参数: $1”
echo “这是脚本的第三个位置参数: $2”
echo “这是脚本的第四个位置参数: $3”
echo “这是脚本的第五个位置参数: $4”
#chmod u+x ./test #加执行权限;
#./test A B C#加参数证验
echo “这是脚本的之一个名称: ./test
echo “这是脚本的第二个位置参数: A
echo “这是脚本的第三个位置参数: B
echo “这是脚本的第四个位置参数: C
echo “这是脚本的第五个位置参数:
#vi test1.sh #新建一个脚本文件
#!/bin/bash
#name:test1.sh
#to call: test1.sh#使用方式
find ~ -perm $1 -print
$#系统命令
#chmod u+c test1.sh
#./test1.sh 755 date #位置一为755,2位date
/dev/ip
/dev/iput
.
.
.
Fri May 13 2:31:54 CST 2023
2.1.5 标准变量:
bash默认建立一些环境变量就是标准变量,可以通俗的说就是不是你加的而是装好机子带的那些环境变量, 可在/etc/profile中进行定义,
命令 意义
HOME 用户主目录
IFS 默认分隔符
MAIL 邮箱地址
MAILCHECK 邮箱检查间隔
PWD 用户当前工作目录
LOGNAME 当前用户登录名
2.1.6 特殊变量
命令 意义
$# 传递到脚本的参数列表
$? 前个命令执行情况,0成功,其它值失败
$$ 脚本运行的当前进程号
$! 运行脚本最后一个命令
$* 显示脚本全部参数
2.1.7 影响变量的命令
declare 设置或显示变量
-f 只显示函数名
-r 创建只读变量
-x 创建转出变量
-i 创建整数变量
使用”+”代替”-“,可以颠倒选项的意思,-r除外,
export 用于传递给子shell的变量
— 表明选项结束,所有后续参数都是实参,
-f 表明在”名-值”对中的名字是函数名,
-n 把全局变量转换成局部变量,换句话就是不再传给shell
-p 显示全局变量列表,
shift
用于移动位置变量,调整位置变量,使$3的值赋给$2.$2的值赋予$1.
#vi /test
#!/bin/bash
#test
echo “这是脚本的之一个名称: $0”
echo “这是脚本的第二个位置参数: $1”
echo “这是脚本的第三个位置参数: $2”
echo “这是脚本的第四个位置参数: $3”
echo “这是脚本的第五个位置参数: $4”
shift
echo “这是脚本的第二个位置参数: $1”
echo “这是脚本的第三个位置参数: $2”
#chmod u+x ./test
#./test A B C
echo “这是脚本的之一个名称: ./test
echo “这是脚本的第二个位置参数: A
echo “这是脚本的第三个位置参数: B
echo “这是脚本的第四个位置参数: C
echo “这是脚本的第五个位置参数: $4”
shift #显示的时候并没有,加在此只会明了
echo “这是脚本的第二个位置参数: B
echo “这是脚本的第三个位置参数: C
给shfit加一个数试一下:
#vi ./test
#!/bin/bash
#test
echo “这是脚本的之一个名称: $0”
echo “这是脚本的第二个位置参数: $1”
echo “这是脚本的第三个位置参数: $2”
echo “这是脚本的第四个位置参数: $3”
echo “这是脚本的第五个位置参数: $4”
shift 2
echo “这是脚本的第二个位置参数: $1”
echo “这是脚本的第三个位置参数: $2”
#./test A B C D
echo “这是脚本的之一个名称: ./test
echo “这是脚本的第二个位置参数: A
echo “这是脚本的第三个位置参数: B
echo “这是脚本的第四个位置参数: C
echo “这是脚本的第五个位置参数: D
shift #显示的时候并没有,加在此只会明了
echo “这是脚本的第二个位置参数: C
echo “这是脚本的第三个位置参数: D
第二节 引号
2.1 引号的必要性
2.2 双引号有什么作用
2.3 单引号的作用
2.4 反引号的作用
file打开文件,然后再输入
i=$( ls )
w保存。
不要用cat > file
方式写脚本, 这样脚本内容会被shell解释展开。追问用cat命令写脚本的好处是调用命令,目录,文正迟件名的时候可以table键补齐,这样子会方便很多啊。v要实中尺现这个功能的话,需举培李要安装什么插件吗?
linux如何转换变量类型的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux如何转换变量类型,Linux变量类型转换技巧详解,linux中的shell变量的种类及各种类的用处是什么?,linux下shell编程变量替换问题的信息别忘了在本站进行查找喔。
成都创新互联科技有限公司,经过多年的不懈努力,公司现已经成为一家专业从事IT产品开发和营销公司。广泛应用于计算机网络、设计、SEO优化、关键词排名等多种行业!
分享名称:Linux变量类型转换技巧详解(linux如何转换变量类型)
文章起源:http://www.csdahua.cn/qtweb/news22/334722.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网