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

คำว่า 'เชลล์' หมายถึงคลาสทั่วไปของล่ามคำสั่งแบบโต้ตอบตามข้อความซึ่งส่วนใหญ่มักเกี่ยวข้องกับระบบปฏิบัติการ Unix & Linux สำหรับคำถามเกี่ยวกับการเขียนสคริปต์เชลล์โปรดใช้แท็กเฉพาะเพิ่มเติมเช่น 'bash', 'powershell' หรือ 'ksh' หากไม่มีแท็กเฉพาะควรใช้วิธีแก้ปัญหาแบบพกพา (POSIX-compliant) แม้ว่าจะใช้ 'posix' เพิ่มเติมหรือ 'sh' แทนก็ตาม

17
วิธีการตรวจสอบว่าทำงานเป็น root ในสคริปต์ทุบตี
ฉันกำลังเขียนสคริปต์ที่ต้องได้รับอนุญาตในระดับรากและฉันต้องการที่จะทำมันเพื่อที่ว่าหากสคริปต์ไม่ได้รับการเรียกใช้ในฐานะรากมันก็ก้อง "กรุณาเรียกใช้เป็นราก" และออกจาก นี่คือรหัสเทียมบางส่วนสำหรับสิ่งที่ฉันกำลังมองหา: if (whoami != root) then echo "Please run as root" else (do stuff) fi exit ฉันจะทำได้ดีที่สุด (อย่างปลอดภัยและปลอดภัย) ได้อย่างไร ขอบคุณ! อ่าเพื่อชี้แจง: ส่วน (ทำสิ่ง) จะเกี่ยวข้องกับการใช้คำสั่งที่จำเป็นต้องใช้รูท ดังนั้นการรันเป็นผู้ใช้ปกติจะเกิดข้อผิดพลาดขึ้น นี่หมายถึงการรันสคริปต์ที่ต้องการคำสั่งรูทอย่างชัดเจนโดยไม่ต้องใช้ sudo ภายในสคริปต์ฉันแค่มองหาน้ำตาลประโยค
274 bash  shell  root 

24
ระงับข้อความเตือนโดยใช้ mysql จากภายใน Terminal แต่รหัสผ่านที่เขียนในสคริปต์ทุบตี
เมื่อฉันพยายามเรียกใช้คำสั่งต่อไปนี้ใน MySQL จากภายใน Terminal: mysql -u $user -p$password -e "statement" การดำเนินการทำงานตามที่คาดไว้ แต่จะออกคำเตือนเสมอ: คำเตือน: การใช้รหัสผ่านบนอินเตอร์เฟสบรรทัดคำสั่งอาจไม่ปลอดภัย อย่างไรก็ตามฉันต้องทำคำสั่งข้างต้นโดยใช้ตัวแปรสภาพแวดล้อม ( $password) ที่เก็บรหัสผ่านของฉันเพราะฉันต้องการเรียกใช้คำสั่งอย่างซ้ำ ๆ ในสคริปต์ทุบตีจากภายในเทอร์มินัลและฉันไม่ชอบความคิดในการรอให้ปรากฏขึ้น และบังคับให้ฉันใส่รหัสผ่าน 50 หรือ 100 ครั้งในสคริปต์เดียว ดังนั้นนี่คือคำถามของฉัน: เป็นไปได้หรือไม่ที่จะระงับคำเตือน? คำสั่งทำงานอย่างถูกต้องตามที่ระบุไว้ แต่หน้าต่างจะดูยุ่งเหยิงเมื่อฉันวนลูปและรันคำสั่ง 50 หรือ 100 ครั้ง ฉันควรเชื่อฟังข้อความเตือนและอย่าเขียนรหัสผ่านในสคริปต์ของฉัน? หากเป็นเช่นนั้นฉันต้องพิมพ์รหัสผ่านทุกครั้งที่ระบบพรอมต์บังคับให้ฉันทำเช่นนั้นหรือไม่ การวิ่งman mysqlไม่ได้ช่วยพูดเพียงอย่างเดียว --show-warnings ทำให้เกิดคำเตือนที่จะแสดงหลังจากแต่ละคำสั่งถ้ามี ตัวเลือกนี้ใช้กับโหมดการโต้ตอบและแบทช์ และไม่ได้กล่าวถึงวิธีการปิดฟังก์ชั่นหากฉันไม่ได้ทำอะไรสักอย่าง ฉันใช้ OS X 10.9.1 Mavericks และใช้ MySQL 5.6 จาก …
273 mysql  bash  shell 



12
ลบ newline เป็นกลุ่ม
มีวิธีลบบรรทัดใหม่ที่ท้ายบรรทัดใน Vim หรือไม่ดังนั้นบรรทัดถัดไปจะถูกต่อท้ายบรรทัดปัจจุบันหรือไม่ ตัวอย่างเช่น: Evaluator<T>(): _bestPos(){ } ฉันต้องการที่จะนำทั้งหมดนี้ในบรรทัดเดียวโดยไม่ต้องคัดลอกเส้นและวางลงในบรรทัดก่อนหน้า ดูเหมือนว่าฉันควรจะสามารถวางเคอร์เซอร์ของฉันที่ส่วนท้ายของแต่ละบรรทัดกดปุ่มและมีบรรทัดถัดไปกระโดดขึ้นไปบนเดียวกับที่เคอร์เซอร์อยู่ ผลลัพธ์สุดท้าย: Evaluator<T>(): _bestPos(){ } เป็นไปได้ในกลุ่ม?
271 unix  vim  shell  ssh  vi 

9
เชลล์แบบโต้ตอบโดยใช้ Docker Compose
มีวิธีการเริ่มเปลือกโต้ตอบในภาชนะโดยใช้นักเขียนประกอบเท่านั้นหรือไม่ ฉันได้ลองแบบนี้ใน docker-compose.yml ของฉัน: myapp: image: alpine:latest entrypoint: /bin/sh เมื่อฉันเริ่มคอนเทนเนอร์นี้โดยใช้นักเทียบท่าเขียนมันจะออกจากทันที มีแฟล็กใดบ้างที่ฉันสามารถเพิ่มในคำสั่ง entrypoint หรือเป็นและตัวเลือกเพิ่มเติมใน myapp เพื่อเริ่มต้นเป็นเชลล์แบบโต้ตอบ? ฉันรู้ว่ามีตัวเลือกคำสั่ง docker ดั้งเดิมเพื่อให้บรรลุสิ่งนี้เพียงแค่อยากรู้ว่ามันเป็นไปได้โดยใช้เฉพาะ Docker Compose เช่นกัน

10
จะได้รับชื่อไฟล์ด้วย Linux 'find' ได้อย่างไร
ฉันใช้ค้นหาไฟล์ทั้งหมดในไดเรกทอรีดังนั้นฉันจึงได้รับรายการเส้นทาง อย่างไรก็ตามฉันต้องการชื่อไฟล์เท่านั้น เช่นฉันได้รับ./dir1/dir2/file.txtและฉันต้องการได้รับfile.txt
266 linux  shell  find 

11
วิธีการตรวจสอบว่าไฟล์มีสตริงที่ระบุโดยใช้ Bash
ฉันต้องการตรวจสอบว่าไฟล์มีสตริงเฉพาะหรือไม่ในทุบตี ฉันใช้สคริปต์นี้ แต่มันไม่ทำงาน: if [[ 'grep 'SomeString' $File' ]];then # Some Actions fi มีอะไรผิดปกติในรหัสของฉัน
266 bash  shell  grep 


11
ฉันจะรันเชลล์สคริปต์ได้อย่างไรโดยไม่ใช้คำสั่ง“ sh” หรือ“ bash”
ฉันมีเชลล์สคริปต์ที่ฉันต้องการเรียกใช้โดยไม่ใช้คำสั่ง "sh" หรือ "bash" ตัวอย่างเช่น: แทน: sh script.sh ฉันต้องการใช้: script.sh ฉันจะทำสิ่งนี้ได้อย่างไร PS (i) ฉันไม่ได้ใช้เชลล์สคริปต์มากนักและฉันพยายามอ่านเกี่ยวกับชื่อแทน แต่ฉันไม่เข้าใจวิธีใช้พวกเขา (ii) ฉันยังอ่านเกี่ยวกับการเชื่อมโยงสคริปต์กับไฟล์อื่นในตัวแปร PATH ฉันใช้เซิร์ฟเวอร์มหาวิทยาลัยของฉันและฉันไม่มีสิทธิ์ในการสร้างไฟล์ในสถานที่เหล่านั้น
261 bash  shell  alias  sh 

23
แปลงพา ธ สัมบูรณ์เป็นพา ธ สัมพัทธ์ที่กำหนดไดเรกทอรีปัจจุบันโดยใช้ Bash
ตัวอย่าง: absolute="/foo/bar" current="/foo/baz/foo" # Magic relative="../../bar" ฉันจะสร้างเวทย์มนตร์ได้อย่างไร (หวังว่ารหัสไม่ซับซ้อนเกินไป ... )

11
จะฆ่ากระบวนการทั้งหมดที่ตรงกับชื่อได้อย่างไร
สมมติว่าฉันต้องการฆ่าทุกขั้นตอนที่บรรจุคำว่า amarok ฉันสามารถพิมพ์คำสั่งที่ฉันต้องการใช้งานได้ แต่ฉันจะทำให้เชลล์ดำเนินการได้อย่างไร กล่าวคือ ps aux | grep -ie amarok | awk '{print "kill -9 " $2}' Output: kill -9 3052 kill -9 3071 kill -9 3076 kill -9 3077 kill -9 3079 kill -9 3080 kill -9 3082 kill -9 3083 kill -9 3084 kill -9 3085 kill …
260 shell  command-line  kill 

12
วิธีการเรียกใช้ mvim (MacVim) จาก Terminal
ฉันติดตั้ง MacVim แล้วและฉันพยายามตั้งค่าเป็นตัวแก้ไขสำหรับ Git (การควบคุมเวอร์ชัน) แต่ฉันไม่สามารถเรียกใช้ 'mvim' จากบรรทัดคำสั่งได้เนื่องจากไม่รู้จัก ฉันจะติดตั้ง mvim เพื่อให้สามารถเรียกใช้จาก Terminal ได้อย่างไร

6
อะไรคือข้อแตกต่างระหว่าง $ (command) และ `command` ในการเขียนโปรแกรมเชลล์?
ในการจัดเก็บเอาต์พุตของคำสั่งเป็นตัวแปรใน sh / ksh / bash คุณสามารถทำได้ var=$(command) หรือ var=`command` ความแตกต่างระหว่างสองวิธีคืออะไร?
258 bash  shell  ksh  sh 

5
วิธีตรวจสอบสถานะการออกโดยใช้คำสั่ง if
ฉันสงสัยว่าสิ่งใดจะเป็นวิธีที่ดีที่สุดในการตรวจสอบสถานะการออกในคำสั่ง if เพื่อสะท้อนผลลัพธ์เฉพาะ ฉันคิดว่ามันเป็น if [ $? -eq 1 ] then echo "blah blah blah" fi ปัญหาที่ฉันยังมีคือคำสั่ง exit อยู่ก่อนคำสั่ง if เพียงเพราะต้องมีรหัสการออกนั้น นอกจากนี้ฉันรู้ว่าฉันกำลังทำอะไรผิดพลาดเพราะทางออกจะเห็นได้ชัดว่าออกจากโปรแกรม

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