Unix Shell 输入输出、文件操作与命令评估详解
在 Unix 系统的使用中,输入输出、文件操作以及命令评估是非常重要的部分。下面将详细介绍其中的一些关键概念和操作。
1. printf 命令的使用
printf 命令用于格式化输出。当字符为单引号或双引号时,对应的数值是字符串第二个字符的 ASCII 值,例如:
$ printf "%s is %d\n" a "'a"
a is 97
当参数数量多于格式说明符时,格式说明符会按需重复使用。若格式字符串中的说明符多于参数,对于数值转换,缺失值会被视为零;对于字符串转换,缺失值会被视为空字符串。不过,最好确保提供的参数数量与格式字符串期望的数量一致。如果 printf 无法执行格式转换,它会返回非零退出状态。
2. 波浪号扩展(Tilde Expansion)和通配符(Wildcards)
2.1 波浪号扩展
如果命令行字符串的第一个字符是波浪号(~),或者变量赋值(如 PATH 或 CDPATH 变量)值中未加引号的冒号后的第一个字符是波浪号,shell 会执行波浪号扩展。其目的是将用户主目录的符号表示替换为实际路径。例如:
$ vi ~/.profile
# 等同于 vi $HOME/.profile
$ vi ~tolstoy/.profile
# 编辑用户 tolstoy 的 .profile 文件
在第一个例子中,shell 将 ~ 替换为
超级会员免费看
订阅专栏 解锁全文
101

被折叠的 条评论
为什么被折叠?



