Làm cách nào để lưu đầu ra lệnh dưới dạng biến trong Bash? Thông tin dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Làm thế nào để lưu đầu ra lệnh dưới dạng biến trong Bash?

Giới thiệu

Trong các tập lệnh bash, việc gán đầu ra của một lệnh cho các biến có thể thuận lợi bằng cách lưu trữ các kết quả đầ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 xét cách bạn có thể lưu trữ kết quả đầu ra của một lệnh dưới dạng một biến trong Bash.

Kiến thức cơ bản để thiết lập biến

Lưu đầu ra của một lệnh dưới dạng một biến được thực hiện 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 vỏ convà thay thế lệnh được 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 dấu gạch ngược hoặc ký hiệu đô la có dấu ngoặc đơn:

`command`

$(command)

Có cuộc tranh luận về việc liệu `lệnh` (dấu nền) hoặc $ (lệnh) (ký hiệ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 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ếp tục.

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

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 mã, chúng tôi đã sử dụng tput và gán giá trị trả về của các lệnh đó để in văn bản đầy màu sắc. Các setaf thay đổi màu nền trước, và 3 (xanh lá cây) và 9 (cam) là 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 các biến cho các lệnh khác nhau:

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

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 kịch bản trên, whoami lệnh trả về tên người dùng hiện tại của người dùng. Các uname -a trả về thông tin hệ thống và date trả về ngày và giờ hiện tại.

Lưu ý: Chúng ta có thể gán chuỗi biến bằng cách thêm nhiều lệnh trong một lệnh gọi lồng nhau. Các CREATE biến chứa đầu ra của touch lệnh này, lần lượt tạo một tệp và đặt tên tệp thành đầu ra của date +"%d%m%Y chỉ huy.

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, các tiêu chuẩn được ngành công nghiệp chấp nhận và bảng lừa đảo đi kèm. Dừng lệnh Googling Git và thực sự học nó!

Cuối cùng, chúng tôi thêm một multiline khái niệm gán biến lệnh bằng cách thêm dấu gạch chéo ngược () giữa các ls lệnh -l gắn cờ để chỉ hiển thị các tệp văn bản bằng cách sử dụng *.txt. 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 giải thích ký tự tiếp theo.

Trong tạp chí echo lệnh, chúng tôi đã thêm -e cờ để sử dụng ký tự đặc biệt, tức là n (dòng mới), để in đầu ra ở 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

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 cho thay thế lệnh, ghi nhận những cải tiến về khả năng đọc của $(command) thay thế dựa trên backtick. Sau đó, chúng ta đã xem xét một số ví dụ về cả gán đơn giản và gán đầu ra chuỗi / lồng nhau.

Dấu thời gian:

Thêm từ xếp chồng lên nhau