Score:0

รหัสการหมุนของ Bash Script

ธง pt

สวัสดี ฉันต้องเขียนรหัสการหมุนของสคริปต์ทุบตี ขออภัย ฉันไม่สามารถไปได้ไกลกว่านี้อีกแล้ว ต่อไปฉันต้องใช้เงื่อนไข If-Else เพื่อแปลงตัวอักษรเป็นตัวเลขและเลื่อนบวก 5 ทีละตัวอักษร ใครช่วยฉันหน่อยได้ไหมว่าจะทำอย่างไร

ขอขอบคุณ

#!/bin/bash
#ROT=$1
ร็อต=5
ข้อความ=$2
CRYPT_TEXT=""

เสียงสะท้อน $ROT
สะท้อน $TEXT

echo "เข้ารหัส: $CRYPT_TEXT"

สำหรับ c ใน $(echo $TEXT | sed -e 's/\(.\)/\1\n/g')
ทำ
  เสียงสะท้อน $c
เสร็จแล้ว
Score:6
ธง ie

การแปลงเป็นตัวพิมพ์ใหญ่สามารถทำได้ใน 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 ที่สอดคล้องกัน ดำเนินการเลื่อนและแปลงรหัสกลับเป็นตัวอักษร คุณต้องแน่ใจว่ามันใช้งานได้กับตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก (หรือรองรับเพียงตัวใดตัวหนึ่ง) ฉันจะปล่อยให้ส่วนที่เหลือเป็นแบบฝึกหัดสำหรับผู้อ่านใจดี

pt flag
ปัญหาคือ. ฉันต้องแก้ไขโดยไม่ต้องใช้คำสั่ง tr เฉพาะกับ if และ else ในขั้นตอนถัดไป
ie flag
@ joshi1999 การใช้ if/else นั้นไม่สมเหตุสมผล คุณจะต้องเขียนโค้ดเช่นถ้า A แล้วพิมพ์ E ซึ่งไม่ใช่การเขียนโปรแกรมมากนัก ฉันได้เพิ่มตัวอย่างทุบตีของการวนซ้ำข้อความ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา