18、深入探索Shell:输入输出、文件操作与命令评估

Shell输入输出与命令评估

深入探索Shell:输入输出、文件操作与命令评估

1. printf命令详解

在使用 printf 命令时,若字符为单引号或双引号,对应数值为字符串第二个字符的ASCII值,示例如下:

$ printf "%s is %d\n" a "'a"
a is 97

当参数数量多于格式说明符时,格式说明符会按需重复使用,这在参数列表长度未知(如通配符表达式)时很方便。若格式字符串中的说明符多于参数,数值转换时缺失值视为零,字符串转换时视为空字符串,但最好确保参数数量与格式字符串期望的一致。若 printf 无法执行格式转换,将返回非零退出状态。

2. 波浪号扩展与通配符
2.1 波浪号扩展

若命令行字符串首字符为波浪号( ~ ),或者变量赋值(如 PATH CDPATH 变量)值中未加引号的冒号后的首字符为波浪号,shell会执行波浪号扩展。其目的是将用户主目录的符号表示替换为实际路径,用户可显式或隐式指定,隐式时为当前运行程序的用户。例如:

$ vi ~/.profile  # 等同于 vi $HOME/.profile
$ vi ~tolstoy/.profile  # 编辑用户tolstoy的.profile文件

波浪号扩展最早出现在Berkeley C shell(csh)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值