การแปลงเป็นตัวพิมพ์ใหญ่สามารถทำได้ใน Bash โดยใช้:
TEXT="foobar"
เสียงสะท้อน ${TEXT^^}
สามารถใช้รหัสการหมุนได้โดยใช้ ท
เช่น rot13:
เสียงสะท้อน $TEXT | tr 'อา-ซ่า-ซ' 'น-ซา-ม-ซา-ม'
#sbbone
rot5 จะมีลักษณะดังนี้:
เสียงสะท้อน $TEXT | tr 'A-Za-z' 'ฟ-ซา-เอฟ-ซา-อี'
#kttgfw
เวอร์ชันบางส่วนที่ไม่มี ท
สั่งการ:
#!/bin/bash
TEXT="AZ"
สำหรับ (( i=0; i<${#TEXT}; i++ )); ทำ
printf "%s -> %d\n" "${TEXT:$i:1}" \'${TEXT:$i:1}
printf -v val "%d" \'${TEXT:$i:1}
shifted=$(($val + 5))
echo "เลื่อน: $เลื่อน"
printf "\$(printf '%03o' $เลื่อน)\n"
# A-Z อยู่ในช่วง:
#65-90
ถ้า [[ $shifted -gt 90 ]];แล้ว
# ถ้าค่ามากกว่าตัวอักษร Z คุณต้องลบ 26
# เพื่อให้ 91 กลายเป็นตัวอักษร A
echo "$ shifted val ใหญ่เกินไป"
แก้ไขแล้ว=$(( $เลื่อน - 26))
echo "แก้ไข ord มูลค่า $corrected"
printf "\$(printf '%03o' $corrected)\n"
ไฟ
เสร็จแล้ว
ผลลัพธ์ควรมีลักษณะดังนี้:
ก -> 65
เลื่อน: 70
ฉ
Z -> 90
ขยับ: 95
_
95 วาลใหญ่เกินไป
ค่าออร์ดที่แก้ไขแล้ว 69
อี
สคริปต์จะแปลงตัวอักษรเป็นรหัส ASCII ที่สอดคล้องกัน ดำเนินการเลื่อนและแปลงรหัสกลับเป็นตัวอักษร คุณต้องแน่ใจว่ามันใช้งานได้กับตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก (หรือรองรับเพียงตัวใดตัวหนึ่ง) ฉันจะปล่อยให้ส่วนที่เหลือเป็นแบบฝึกหัดสำหรับผู้อ่านใจดี