Lệnh BASH xuất ra biến

Bash Command Output Variable



Các loại lệnh bash khác nhau cần được chạy từ thiết bị đầu cuối dựa trên yêu cầu của người dùng. Khi người dùng chạy bất kỳ lệnh nào từ thiết bị đầu cuối thì nó sẽ hiển thị đầu ra nếu không có lỗi nào tồn tại nếu không nó sẽ hiển thị thông báo lỗi. Đôi khi, đầu ra của lệnh cần được lưu trữ trong một biến để sử dụng trong tương lai. Tính năng thay thế lệnh shell của bash có thể được sử dụng cho mục đích này. Cách bạn có thể lưu trữ các loại lệnh shell khác nhau vào biến bằng cách sử dụng tính năng này được trình bày trong hướng dẫn này.

Biến đổi= $(chỉ huy)
Biến đổi= $(chỉ huy [Lựa chọn…]đối số1 đối số2 ...)
Biến đổi= $(/con đường/đến/chỉ huy)

HOẶC







Biến đổi=``chỉ huy``
Biến đổi=``chỉ huy [Lựa chọn…]đối số1 đối số2 ...``
Biến đổi=`/con đường/đến/chỉ huy``

*** Lưu ý: Không sử dụng bất kỳ khoảng trắng nào trước và sau dấu bằng khi sử dụng các lệnh trên.



Một lệnh đầu ra cho một biến

Các lệnh bash có thể được sử dụng mà không có bất kỳ tùy chọn và đối số nào cho những lệnh mà các phần này là tùy chọn. Hai ví dụ sau đây cho thấy cách sử dụng thay thế lệnh đơn giản.



Ví dụ 1:

bash ngày tháng` lệnh được sử dụng để hiển thị ngày và giờ hiện tại. Tập lệnh sau sẽ lưu trữ kết quả đầu ra của ` ngày tháng` lệnh thành $ ngay hiện tại biến bằng cách sử dụng thay thế lệnh.





$ngay hiện tại= $(ngày)
$quăng đi 'Hôm nay là$ current_date'

Đầu ra:



Ví dụ số 2:

`pwd` lệnh hiển thị đường dẫn của thư mục làm việc hiện tại. Tập lệnh sau lưu trữ kết quả đầu ra của `pwd` lệnh vào biến, $ current_dir và giá trị của biến này được in bằng cách sử dụng `tiếng vang` chỉ huy.

$current_dir=``pwd``
$quăng đi 'Thư mục hiện tại là:$ current_dir'

Đầu ra:

Lệnh với tùy chọn và đối số

Tùy chọn và đối số là bắt buộc đối với một số lệnh bash. Các ví dụ sau đây cho thấy cách bạn có thể lưu trữ kết quả đầu ra của lệnh với tùy chọn và đối số vào một biến.

Ví dụ # 3:

Bash ' wc lệnh được sử dụng để đếm tổng số dòng, từ và ký tự của bất kỳ tệp nào. Lệnh này sử dụng -c, -w và -l làm tùy chọn và tên tệp làm đối số để tạo đầu ra. Tạo một tệp văn bản có tên fruit.txt với dữ liệu sau để kiểm tra tập lệnh tiếp theo.
fruit.txt

fruit.txt
Trái xoài
quả cam
Chuối
Giống nho
Trái ổi
quả táo

Chạy các lệnh sau để đếm và lưu trữ tổng số từ trong fruit.txt tệp vào một biến, $ count_words và in giá trị bằng cách sử dụng ` echo` chỉ huy.

$count_words=``wc -trongfruit.txt``
$quăng đi 'Tổng số từ trong fruit.txt là$ count_words'

Đầu ra:

Ví dụ # 4:

`cắt` là một lệnh bash khác sử dụng tùy chọn và đối số để tạo đầu ra. Tạo một tệp văn bản có tên weekday.txt với tên bảy ngày trong tuần để chạy tập lệnh tiếp theo.

weekday.txt

thứ hai
Thứ ba
thứ Tư
Thứ năm
thứ sáu
Thứ bảy
chủ nhật

Tạo một tệp bash có tên cmdsub1.sh với tập lệnh sau. Trong tập lệnh này, trong khi vòng lặp được sử dụng để đọc nội dung của weekday.txt tập tin từng dòng và đọc ba ký tự đầu tiên của mỗi dòng bằng cách sử dụng ` cắt chỉ huy. Sau khi cắt, giá trị chuỗi được lưu trữ trong biến $ ngày . Tiếp theo, nếu câu lệnh được sử dụng để kiểm tra giá trị của $ ngày Là ' Mặt trời' hay không. Đầu ra sẽ in ‘ Chủ nhật là ngày lễ ‘Khi nếu điều kiện là đúng, ngược lại nó sẽ in ra giá trị của $ ngày .

cmdsub1.sh

#! / bin / bash
tên tập tin='weekday.txt'
trong khi đọchàng;làm
ngày=``quăng đi $ dòng | cắt -NS 1-3``
nếu như [ $ ngày=='Mặt trời' ]
sau đó
quăng đi 'Chủ nhật là ngày lễ'
khác
quăng đi $ ngày
thì là ở
xong<$ filename

Chạy tập lệnh.

$con mèoweekday.txt
$bấu víucmdsub1.sh

Đầu ra:

Sử dụng thay thế lệnh trong vòng lặp

Bạn có thể lưu trữ kết quả thay thế lệnh vào bất kỳ biến vòng lặp nào được hiển thị trong ví dụ tiếp theo.

Ví dụ số 5:

Tạo một tệp có tên cmdsub2.sh với đoạn mã sau. Đây, ls -d * / Lệnh `được sử dụng để truy xuất tất cả danh sách thư mục từ thư mục hiện tại. Vòng lặp for được sử dụng ở đây để đọc từng thư mục từ đầu ra và lưu trữ nó trong biến $ dirname được in sau.

cmdsub2.sh

#! / bin / bash
dirname trong$(ls -NS * /)
làm
quăng đi '$ dirname'
xong

Chạy tập lệnh.

$bấu víucmdsub2.sh

Đầu ra:

Sử dụng các lệnh lồng nhau

Cách bạn có thể sử dụng nhiều lệnh bằng cách sử dụng pipe (|) được trình bày trong ví dụ trước. Nhưng bạn có thể sử dụng các lệnh lồng nhau để thay thế lệnh trong đó đầu ra của lệnh đầu tiên phụ thuộc vào đầu ra của lệnh thứ hai và nó hoạt động ngược lại với lệnh pipe (|).

Cú pháp lệnh lồng nhau:

ở đâu=``command1 ``chỉ huy``

Ví dụ # 6:

Hai lệnh, quăng đi `và ' ai `được sử dụng trong ví dụ này dưới dạng lệnh lồng nhau. Đây, ai Lệnh `sẽ thực thi đầu tiên in thông tin người dùng của người dùng hiện đang đăng nhập. Đầu ra của ` ai lệnh `sẽ được thực thi bởi` quăng đi lệnh `và đầu ra của` quăng đi `sẽ lưu trữ vào biến $ var . Ở đây, đầu ra của ` quăng đi Lệnh `phụ thuộc vào kết quả đầu ra của` ai `lệnh.

$ở đâu=``quăng đi``ai``
$quăng đi $ var

Đầu ra:

Sử dụng đường dẫn lệnh

Nếu bạn biết đường dẫn của lệnh thì bạn có thể chạy lệnh bằng cách chỉ định đường dẫn lệnh khi sử dụng thay thế lệnh. Ví dụ sau đây cho thấy việc sử dụng đường dẫn lệnh.

Ví dụ # 7:

`whoami` lệnh hiển thị tên người dùng của người dùng hiện đang đăng nhập. Theo mặc định, lệnh này được lưu trữ trong / usr / là/ thư mục. Chạy tập lệnh sau để chạy ` whoami` lệnh sử dụng đường dẫn và lưu trữ trong biến, $ đầu ra, và in giá trị của $ đầu ra .

$đầu ra= $(/usr//tôi là ai)
$quăng đi $ đầu ra

Đầu ra:

Sử dụng đối số Dòng lệnh

Bạn có thể sử dụng đối số dòng lệnh với lệnh làm đối số trong thay thế lệnh.

Ví dụ # 8:

Tạo một tệp bash có tên cmdsub3.sh với tập lệnh sau. ` tên cơ sở Lệnh `được sử dụng ở đây để lấy tên tệp từ 2NSđối số dòng lệnh và được lưu trữ trong biến, $ filename . Chúng tôi biết 1NSđối số dòng lệnh là tên của tập lệnh đang thực thi được ký hiệu là $ 0.

#! / bin / bash
tên tập tin=``tên cơ sở $ 1``
quăng đi 'Tên của tệp là$ filename. '

Chạy tập lệnh với giá trị đối số sau.

$bấu víucmdsub3.sh Máy tính để bàn/nhân viên bán thời gian/hello.txt

Ở đây, tên cơ sở của con đường, Desktop / temp / hello.txt Là ' hello.txt '. Vì vậy, giá trị của $ filename sẽ là hello.txt .

Đầu ra:

Phần kết luận:

Các cách sử dụng thay thế lệnh khác nhau được hiển thị trong hướng dẫn này. Nếu bạn cần làm việc với nhiều lệnh hoặc lệnh phụ thuộc và lưu trữ kết quả tạm thời để thực hiện một số tác vụ khác sau đó thì bạn có thể sử dụng tính năng này trong tập lệnh của mình để lấy kết quả.

Thông tin thêm trong video: