如何让ROT-5加密Bash脚本兼容文件名与命令行文本输入?
实现支持文件/直接文本输入的Bash ROT5转换器
你可以通过判断输入参数是否为文件来实现两种模式的兼容,修改后的脚本如下:
#!/bin/bash # 处理输入内容:优先检测参数是否为文件,否则直接使用参数文本 if [ -f "$1" ]; then input_content=$(<"$1") else input_content="$1" fi # 输出原始内容与ROT5转换结果 echo "$input_content" echo "$input_content" | tr 'A-Za-z' 'F-ZA-Ef-za-e'
关键逻辑说明
[ -f "$1" ]:检查第一个传入的参数是否是存在的普通文件,如果是就读取文件内容到input_content变量;- 若参数不是文件(比如直接传入的明文),则将参数本身赋值给
input_content; - 后续统一对
input_content执行转换,保证两种输入模式的逻辑一致性。
使用示例
- 处理文件:
./rot5.sh filename.txt
- 直接处理文本:
./rot5.sh encodemysecretmessage
内容的提问来源于stack exchange,提问作者user1047228
相关产品推荐
相关产品推荐

