ฉันค้นหาทุกที่ สะท้อนเสียงและพิมพ์ พยายามเสนอราคาเดียวและสองครั้ง แต่ฉันมีการแยกวิเคราะห์ข้อมูลและกำหนดให้กับตัวแปรและต้องการประเมินถ้ามีตัวแปรอยู่ภายใน ฉันจะแทนที่ตัวแปรด้วยอักขระตัวแทนและค้นหาไฟล์
ตัวอย่าง:
var="file.$DATE.txt"
### Where it goes wrong- Needs to identify that $DATE is within the $var varaible.
test=$(echo "$var"|grep '\$')
if [[ $test ]]
then
### I would use whatever fix is discovered here as well
test=$(echo $test|sed 's/\$[a-zA-Z]*/\*/')
fi
### (Actually pulling from remote machine to local)
cat $test > /tmp/temporary.file
นี่คือหนึ่งในความล้มเหลวมากมายของฉัน:
PROMPT> file=blah.$DATE
PROMPT> test=$(echo "$file"|grep '\$')
PROMPT> echo $test
PROMPT>
PROMPT>
ฉันรู้ว่ามันมีบางอย่างเกี่ยวกับการขยายตัว แต่ไม่รู้ว่าจะทำอย่างไร ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ขอบคุณ!
ขออภัยเพื่อทดสอบว่ามีการกำหนดตัวแปรภายในตัวแปร "var" หรือไม่ ซ้อนกันแปลก ๆ
—
krmarshall87
ฉันพบวิธีแก้ไขภาวะที่กลืนไม่เข้าคายไม่ออกของฉันโดยการลบสิ่งใดก็ตามที่ดูเหมือนจะเป็นตัวแปรทันที (โดยไม่ต้องใส่ใจเป็นครั้งแรกที่ฉันต้องการ) และแลกเปลี่ยนมันด้วยสัญลักษณ์แทน:
—
krmarshall87
sed 's/\${*[a-zA-Z0-9_%]*}*/\*/'
$date
หรือไม่ สำหรับการใช้งานนั้น:var='file.$DATE.txt'
. หากต้องการขยายวันที่เมื่อใช้ var ฉันแน่ใจว่าคุณต้องอธิบายสิ่งที่คุณถาม