Làm cách nào để bạn lưu trữ đầu ra của lệnh vào một biến trong python?

Trong các tập lệnh bash, việc gán đầu ra của lệnh cho các biến có thể thuận tiện bằng cách lưu trữ đầu ra của các lệnh và sử dụng chúng sau này

Trong hướng dẫn ngắn này, chúng ta sẽ xem cách bạn có thể lưu trữ đầu ra của lệnh dưới dạng một biến trong Bash

Khái niệm cơ bản để thiết lập biến

Lưu đầu ra của lệnh dưới dạng một biến đạt được thông qua thay thế lệnh. Thay thế lệnh là một trình bao bọc thực thi lệnh trong môi trường lớp vỏ con và thay thế lệnh được bao bọc bằng đầu ra tiêu chuẩn của môi trường mà lệnh được chạy. Đầu ra này sau đó có thể được tham chiếu sau, nếu được kết nối với một biến tham chiếu

Thay thế lệnh có thể đạt được thông qua backticks hoặc ký hiệu đô la với dấu ngoặc đơn

`command`

$(command)

Có tranh luận về việc liệu `command` (backticks) hay $(command) (dấu đô la và dấu ngoặc đơn) nên được sử dụng làm "phương pháp hay nhất". $(command) hoạt động tốt trong việc lồng nhau và cải thiện khả năng đọc trong một số trường hợp, nhưng bạn có thể sử dụng một trong hai cú pháp trong các ví dụ tiến hành

Điều đó đang được nói - việc gán đầu ra của lệnh cho một biến trong Bash dễ dàng như

VARIABLE=$(command)
echo "${VARIABLE}"

Chạy ${variable} được gọi là mở rộng tham số và được sử dụng để đánh giá và tìm nạp giá trị được liên kết với một biến tham chiếu

Bây giờ chúng ta hãy xem ví dụ đơn giản về thiết lập một biến cho lệnh thay đổi màu đầu ra

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

Trong đoạn trích, chúng tôi đã sử dụng lệnh tput và gán giá trị trả về của các lệnh đó để in văn bản đầy màu sắc. setaf thay đổi màu nền trước và 3 (xanh lục) và 9 (cam) là các mã màu

Bây giờ chúng ta sẽ chuyển sang một ví dụ khác chứa nhiều điều kiện để thiết lập biến cho các lệnh khác nhau

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlie\n"

DETAILS=$(uname -a)
echo -e "You're running this script on:\n${DETAILS}\n"

DATES=$(date)
echo -e "The script is being run on:\n${DATES}\n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}\n"

LOCATION=$(ls \
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

Trong đoạn mã trên, lệnh whoami trả về tên người dùng hiện tại.

VARIABLE=$(command)
echo "${VARIABLE}"
0 trả về thông tin hệ thống và
VARIABLE=$(command)
echo "${VARIABLE}"
1 trả về ngày và giờ hiện tại

Ghi chú. Chúng ta có thể gán biến chuỗi bằng cách thêm nhiều lệnh vào một lệnh gọi lồng nhau. Biến

VARIABLE=$(command)
echo "${VARIABLE}"
2 chứa đầu ra của lệnh
VARIABLE=$(command)
echo "${VARIABLE}"
3, từ đó tạo một tệp và đặt tên tệp thành đầu ra của lệnh
VARIABLE=$(command)
echo "${VARIABLE}"
4

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Cuối cùng, chúng tôi thêm khái niệm gán biến lệnh

VARIABLE=$(command)
echo "${VARIABLE}"
5 bằng cách thêm dấu gạch chéo ngược
VARIABLE=$(command)
echo "${VARIABLE}"
6 giữa cờ lệnh
VARIABLE=$(command)
echo "${VARIABLE}"
7
VARIABLE=$(command)
echo "${VARIABLE}"
8 để chỉ hiển thị các tệp văn bản bằng cách sử dụng
VARIABLE=$(command)
echo "${VARIABLE}"
9. Dấu gạch chéo ngược là một ký tự thoát thông báo cho trình bao không diễn giải ký tự tiếp theo

Trong lệnh

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"
0, chúng tôi đã thêm cờ
#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"
1 để sử dụng ký tự đặc biệt, i. e. ,
#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"
2 (dòng mới), để in đầu ra trong dòng mới

Chúng tôi nhận được kết quả sau khi thực hiện tập lệnh

$ ./variable.sh

Phần kết luận

Trong hướng dẫn ngắn này, chúng tôi đã xem xét cách bạn có thể đặt đầu ra của một lệnh thành một biến trong Bash. Chúng tôi đã xem xét sự khác biệt giữa các cú pháp thay thế lệnh, lưu ý những cải tiến về khả năng đọc của $(command) so với thay thế dựa trên backtick. Sau đó, chúng ta đã xem xét một số ví dụ về cả phép gán đơn giản và phép gán đầu ra theo chuỗi/lồng nhau