คำถามติดแท็ก variable

ตัวแปรคือชื่อถ้าเลือกอย่างถูกต้องด้วยความหมายเชิงสัญลักษณ์ที่เก็บค่าหรือค่า ใช้แท็กนี้หากคำถามของคุณเกี่ยวกับการใช้ตัวแปรในการเขียนสคริปต์เชลล์ (หากคุณต้องการถามเกี่ยวกับตัวแปรในภาษาการเขียนโปรแกรมคุณควรถามเกี่ยวกับ StackOverflow)

4
วิธีที่สั้นที่สุดในการแทนที่อักขระในตัวแปร
มีหลายวิธีในการแทนที่อักขระในตัวแปร วิธีที่สั้นที่สุดที่ฉันค้นพบคือtr: OUTPUT=a\'b\"c\`d_123and_a_lot_more OUTPUT=$(echo "$OUTPUT"|tr -d "'\`\"") echo $OUTPUT มีวิธีที่เร็วกว่านี้ไหม และนี่คือข้อความที่ปลอดภัยสำหรับคำพูดเช่น', "และ `ตัวเอง?
18 bash  string  variable 


3
ฉันจะเชื่อมตัวแปรเชลล์เข้ากับพารามิเตอร์อื่น ๆ ในบรรทัดคำสั่งของฉันได้อย่างไร
ฉันจะเชื่อมตัวแปรเชลล์เข้ากับพารามิเตอร์อื่น ๆ ในบรรทัดคำสั่งของฉันได้อย่างไร ตัวอย่างเช่น, #!/bin/sh WEBSITE="danydiop" /usr/bin/mysqldump --opt -u root --ppassword $WEBSITE > $WEBSITE.sql ฉันต้องเชื่อมต่อ.sqlกับ$WEBSITE

2
จะเก็บไฟล์รูปภาพในตัวแปร bash ได้อย่างไร?
หลังจากที่ฉันใช้คำสั่งต่อไปนี้ pngString="$(cat example.png)" echo -n "$pngString" > tmp.png ฉันไม่สามารถเปิด tmp.png เป็นไฟล์ PNG ได้ ข้อมูลบางอย่างอาจหายไปเมื่อฉันใช้$pngStringเพื่อจัดเก็บไฟล์ภาพ ดังนั้นคำถามคือฉันจะเก็บข้อมูลภาพทั้งหมดโดยใช้ตัวแปรในสคริปต์ทุบตีได้อย่างไร
14 bash  cat  images  binary  variable 

4
เป็นไปได้ไหมที่จะพิมพ์เนื้อหาของเนื้อหาของตัวแปรด้วย shell script? (การอ้างอิงทางอ้อม)
สมมุติว่าฉันประกาศตัวแปรต่อไปนี้แล้ว: $ var='$test' $ test="my string" หากฉันพิมพ์เนื้อหาของพวกเขาฉันเห็นดังต่อไปนี้: $ echo $var $test $ echo $test my string ฉันต้องการหาวิธีพิมพ์เนื้อหาของเนื้อหาของ$var(ซึ่งเป็นเนื้อหาของ$test) ดังนั้นฉันจึงพยายามทำสิ่งต่อไปนี้: $ echo $(echo $var) $test แต่นี่คือผลลัพธ์$testและไม่ใช่"my string"... เป็นไปได้หรือไม่ที่จะพิมพ์เนื้อหาของตัวแปรโดยใช้ bash?

8
การย้อนกลับเนื้อหาของตัวแปรด้วยคำพูด
ดังนั้นถ้าฉันมีตัวแปร VAR='10 20 30 40 50 60 70 80 90 100' และสะท้อนออกมา echo "$VAR" 10 20 30 40 50 60 70 80 90 100 อย่างไรก็ตามยิ่งสคริปต์ฉันต้องย้อนกลับลำดับของตัวแปรนี้จึงแสดงเป็นสิ่งที่ต้องการ echo "$VAR" | <code to reverse it> 100 90 80 70 60 50 40 30 20 10 ฉันพยายามใช้ rev และมันกลับด้านทุกอย่างดังนั้นมันจึงออกมาเป็น echo "$VAR" | rev 001 …
13 linux  bash  shell  variable 

2
วิธีการเพิ่มตัวแปรท้องถิ่นใน Bash
ข้อมูล 1 \begin{document} 3 รหัส #!/bin/bash function getStart { local START="$(awk '/begin\{document\}/{ print NR; exit }' data.tex)" echo $START } START2=$(getStart) echo $START2 ซึ่งผลตอบแทนแต่ฉันต้องการ2 3ฉันเปลี่ยนปลายไม่สำเร็จโดยคำตอบนี้เกี่ยวกับฉันจะเพิ่มตัวเลขในสคริปต์ทุบตี : START2=$((getStart+1)) คุณจะเพิ่มตัวแปรโลคอลในสคริปต์ Bash ได้อย่างไร?

2
ตัวแปรใช้“ ~” สำหรับ cd'ing ได้อย่างไร
ฉันจะใช้ตัวแปร - $BASEในซีดีของฉันได้อย่างไร ฉันลองสิ่งต่อไปนี้ แต่ฉันได้รับข้อผิดพลาด $ cd ~/z/repo_1_ruby_193/ 23:23:57 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 $ BASE="~/z" 23:24:03 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 $ cd $BASE/repo_1_ruby_193 -bash: cd: ~/z/repo_1_ruby_193: No such file or directory 23:24:25 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193

1
ความแตกต่างระหว่าง $ path กับ $ PATH (ตัวพิมพ์เล็กกับตัวพิมพ์ใหญ่) กับ zsh คืออะไร
ในFreeBSD 12 การใช้zshเชลล์ฉันสังเกตเห็นความแตกต่างนี้เมื่อดู$path(ตัวพิมพ์เล็ก) กับ$PATH(ตัวพิมพ์ใหญ่) echo $path / sbin / bin / usr / sbin / usr / bin / usr / local / sbin / usr / local / bin / usr / home / freebsd / bin echo $PATH sbin /: / bin: / usr / sbin: / usr …
13 zsh  variable  path  array 

1
ดูการขยายตัวของตัวแปร Bash สำหรับการดีบั๊กหรือไม่
มีเครื่องมือ / เทคนิคสำหรับการขยายตัวแปรเพื่อให้สามารถอ่านรหัสทุบตีได้ง่ายขึ้นหรือไม่? ตัวอย่างเช่นมันจะแปลงต่อไปนี้: DIR=/var/tmp FILE=${DIR}/file SCRIPT_ROOT=/opt/root TOOL=${SCRIPT_ROOT}/tool.sh ${TOOL} ${FILE} ถึง: DIR=/var/tmp FILE=/var/tmp/file SCRIPT_ROOT=/opt/root TOOL=/opt/root/tool.sh /opt/root/tool.sh /var/tmp/file ฉันกำลังแปลงรหัส BASH เป็น Python และการอ่านไวยากรณ์ BASH นั้นน่าเบื่อ

4
ชื่อตัวแปร bash ไดนามิก (ตัวแปร)
ฉันต้องการสร้างลำดับของสตริงแบบไดนามิกโดยจัดการอาเรย์ขององค์ประกอบและสร้างกระบวนการทางคณิตศาสตร์บางอย่าง for name in FIRST SECOND THIRD FOURTH FIFTH; do $name = $(( $6 + 1 )) $name = "${$name}q;d" echo "${$name}"; printf "\n" done ผลที่ปรารถนาจะเป็นดังต่อไปนี้เท่ากับ$60 1q;d 2q;d 3q;d 4q;d 5q;d แต่ฉันได้รับข้อผิดพลาดนี้ reel_first_part.sh: line 18: FIRST: command not found reel_first_part.sh: line 19: ${$name}q;d: bad substitution reel_first_part.sh: line 18: FIRST: command …
12 bash  variable 

7
ซีเรียลไลซ์ตัวแปรเชลล์ใน bash หรือ zsh
มีวิธีใดในการทำให้เชลล์เชลล์เป็นอนุกรม? สมมติว่าฉันมีตัวแปร$VARและฉันต้องการที่จะสามารถบันทึกลงในไฟล์หรืออะไรก็ตามแล้วอ่านมันอีกครั้งในภายหลังเพื่อรับค่าเดียวกันกลับมา? มีวิธีพกพาในการทำเช่นนี้? (ฉันไม่คิดอย่างนั้น) มีวิธีทำใน bash หรือ zsh หรือไม่
12 bash  shell  zsh  variable 

3
ฉันจะสะท้อนวงเล็บปีกกาว่าง JSON เป็นค่าเริ่มต้นได้อย่างไร
ฉันดูเหมือนจะไม่ได้รับ JSON ว่างเปล่า{}เพื่อสะท้อนถ้า envvar หายไป ฉันอาจมีส่วนท้าย}ในเอาต์พุตหากตั้งค่าไว้หรือ escape แสดงขึ้น bash-3.2$ unset X bash-3.2$ echo "${X:-{}}" {} bash-3.2$ X=y bash-3.2$ echo "${X:-{}}" y} bash-3.2$ echo "${X:-{\}}" y bash-3.2$ unset X bash-3.2$ echo "${X:-{\}}" {\} bash-3.2$ echo "${X:-'{}'}" '{}' bash-3.2$ X=z bash-3.2$ echo "${X:-'{}'}" z ฉันจะหนีมันอย่างถูกต้องได้อย่างไร
12 bash  variable 


5
จำนวนอักขระในเอาต์พุตของคำสั่งเชลล์
ฉันกำลังเขียนบทซึ่งความต้องการในการคำนวณจำนวนตัวอักษรในการส่งออกคำสั่งในขั้นตอนเดียว ตัวอย่างเช่นการใช้คำสั่งreadlink -f /etc/fstabควรส่งคืน10เนื่องจากผลลัพธ์ของคำสั่งนั้นมีความยาว 10 อักขระ สิ่งนี้สามารถเกิดขึ้นได้กับตัวแปรที่เก็บไว้โดยใช้รหัสต่อไปนี้: variable="somestring"; echo ${#variable}; # 10 น่าเสียดายที่การใช้สูตรเดียวกันกับสตริงที่สร้างคำสั่งไม่ทำงาน: ${#(readlink -f /etc/fstab)}; # bash: ${#(readlink -f /etc/fstab)}: bad substitution ฉันเข้าใจว่าเป็นไปได้ที่จะทำสิ่งนี้โดยการบันทึกผลลัพธ์เป็นตัวแปรแรก: variable=$(readlink -f /etc/fstab); echo ${#variable}; แต่ฉันต้องการลบขั้นตอนพิเศษ เป็นไปได้ไหม ความเข้ากันได้กับ Almquist shell (sh) โดยใช้เฉพาะยูทิลิตี้ที่อยู่ในตัวหรือมาตรฐานเท่านั้น
12 shell  string  variable 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.