Làm Việc Với Output Bash Shell - MTD SEC

MTD SEC

Chia Sẻ Để Thành Công

Home Top Ad

Post Top Ad

Thứ Ba, 19 tháng 3, 2019

Làm Việc Với Output Bash Shell


Trong lập trình thì kết quả ở hàm trước sẽ là cái để xử lý ở các hàm tiếp theo. trong bash shell cũng như vậy để xử lý đầu ra chúng ta có một số cách sau.





1: Gán biến cho nó:





Đây là cách nhanh nhất nhiều khi mình cũng hay áp dụng ví dụ





ts="$(cat 1.txt)"
ts="$(ls /root)




như vậy biến $ts sẽ là toàn bộ nội dung của file 1.txt, danh sách file trong thư mục root, đây là cách thường thấy trong lập trình bash shell.





2: sử dụng đầu ra tiêu chuẩn





Trong shell khi gõ lệnh thì chúng ta nhận được kết quả trả về hiển thị ở màn hình cho chúng ta tuy nhiên đôi khi chúng ta cần lưu lại những kết quả này để làm gì đó về sau0





Trong bash shell chúng ta có dấu ngoặc nhọn ">" để dùng làm đầu ra tiêu chuẩn có 2 cách dùng của ngoặc nhọn là một dấu > hoặc hai dấu >>





Khi chúng ta dùng một dấu ngoặc nhọn thì nội dung của file đầu ra sẽ bị thay thế hoàn toàn





cấu trúc cơ bản của lệnh





command > output.file.name




Ví dụ!





cat /tmp/output.txt




kết quả: trước khi dùng >





vouu@DESKTOP-N7GF9HB:~$ cat /tmp/output.txt
day la noi dung chua bi thay the




ls > /tmp/output.txt




kết quả





vouu@DESKTOP-N7GF9HB:~$ cat /tmp/output.txt
1
11.sh
11.sh.save
1.sh
1.txt
23.sh
2.sh
externalip-benchmark
master
mt.sh
mt.sh.1
my-script.sh
mysnaps
ossec-hids-2.8.3.tar.gz.sha256
sqlmap
talk.sh




Nghĩa là khi chúng ta dùng một dấu ngoặc nhọn thì nội dung file đầu ra sẽ được thay thế hoàn toàn.





Nếu các bạn không muốn xóa cái cũ mà vẫn muốn thêm cái mới thì chúng ta dùng 2 dấu ngoặc nhọn. khi này thì kết quả trả về mới hơn sẽ được đẩy vào cuối file đầu ra!









vouu@DESKTOP-N7GF9HB:~$ cat /tmp/output.txt
day la noi dung chua bi thay the
vouu@DESKTOP-N7GF9HB:~$ ls >> /tmp/output.txt
vouu@DESKTOP-N7GF9HB:~$ cat /tmp/output.txt
day la noi dung chua bi thay the
1
11.sh
11.sh.save
1.sh
1.txt
23.sh
2.sh
externalip-benchmark
master
mt.sh
mt.sh.1
my-script.sh
mysnaps
ossec-hids-2.8.3.tar.gz.sha256
sqlmap
talk.sh
zcomip.sh




với dấu ngoặc nhọn thì kết quả đầu ra ở lệnh phía trước là input của nó.





3: Xử lý đầu ra bằng "ống giun"





Các đường ống kết nối đầu ra tiêu chuẩn của một lệnh với đầu vào tiêu chuẩn của một lệnh khác. Bạn làm điều này bằng cách tách hai lệnh bằng ký hiệu ống dẫn (|). Dưới đây là một ví dụ:





$ echo "hello there"
hello there
$ echo "hello there" | sed "s/hello/hi/"
hi there




echo "hello there" kết quả hello there. Nhưng khi chúng ta chuyển nó vào thành sed "s / hello / hi /", sed lấy đầu ra từ lệnh echo "hello there" làm đầu vào của nó và thay thế cho hello bằng với hi, sau đó in ra kết quả. Shell khi chạy chỉ nhìn thấy kết quả cuối cùng sau khi nó được xử lý bởi sed và in kết quả ra màn hình.





https://thoughtbot.com/blog/input-output-redirection-in-the-shell#redirecting-output


Không có nhận xét nào:

Đăng nhận xét

Post Top Ad