👱
多大哥,你看这块玉佩(数据)成色如何?能不能帮我传个话(打印)给皇上?还有,我想试试那把火枪(文件)是不是真的。
👳
说话用 echo 或 printf,前者是大白话,后者是文言文(格式化)。至于试探虚实,就用 test 命令,它能帮你查验文件是否存在、权限是否足够。
📢 狮子吼 (echo)
echo 是最常用的喊话工具。
- 普通喊话:
echo "It is a test" - 显示转义:
echo "\"It is a test\""-> "It is a test" - 换行:
echo -e "OK! \n"(-e 开启转义) - 不换行:
echo -e "OK! \c" - 写进文件:
echo "Secret" > file.txt
📜 格式化传音 (printf)
printf 是 C 语言风格的输出,比 echo 更精准,适合对账单。
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 韦小宝 男 60.12
printf "%-10s %-8s %-4.2f\n" 建宁 女 45.67
printf "%-10s %-8s %-4.2f\n" 韦小宝 男 60.12
printf "%-10s %-8s %-4.2f\n" 建宁 女 45.67
%s 是字符串,%f 是小数,%-10s 意思是左对齐占10个格子。
🕵️♂️ 试探虚实 (test)
test 命令用于检查某个条件是否成立,和 [] 是一样的。
🔍 查验文件
- -e file:文件存在吗?(Exist)
- -r file:有权读吗?(Read)
- -w file:有权写吗?(Write)
- -x file:能执行吗?(Execute)
- -d file:是目录(文件夹)吗?(Directory)
- -f file:是普通文件吗?(File)
例子:
if test -e ./secret.txt
then
echo "找到密函了!"
else
echo "密函不见了!"
fi
then
echo "找到密函了!"
else
echo "密函不见了!"
fi
🖐️ 动手时刻:韦爵爷的验毒试纸
编写脚本 check.sh,检查某个文件是否存在,如果存在,输出它的详细信息。
- 编写脚本:
#!/bin/bash filename="poison.txt" # 先造一个假文件 touch $filename echo "正在查验 $filename ..." if test -e $filename then echo "发现目标!" if test -w $filename then echo "而且我有权修改它(下毒)!" else echo "但是只能看,不能动。" fi else echo "目标不存在,安全。" fi # 用 printf 打印个漂亮的报告 printf "查验结果:%-10s 安全等级:%-5d\n" "通过" 100 - 运行:
bash check.sh