Một ít về shell script
Bài đăng này đã không được cập nhật trong 7 năm
Trong công việc đôi khi xử lý bằng shell script giúp ích cho bạn ít nhiều.
Bạn có thể xem qua link: https://www.shellscript.sh/
Đầu tiên để chạy ra một file shell script ta làm các bước sau:
Tạo ra một file
giả sử tên là my-script.sh
#!/bin/sh
echo Hello World
Sau đó chạy lệnh
chmod +x my-script.sh
Muốn chạy file này ta gọi
./my-script.sh
Sử dụng alias
khá đơn giản: bạn gán alias test_alias="ls"
, sau đó gõ test_alias
ngoài commander
lệnh được gán phía trên sẽ chạy.
FRAMGIA\pham.huy.cuong@pham:~/ll/shell-script$ alias test_alias="ls"
FRAMGIA\pham.huy.cuong@pham:~/ll/shell-script$ test_alias
123456789 backup.sh test.txt
FRAMGIA\pham.huy.cuong@pham:~/ll/shell-script$
Muốn tạo 1 function
ta định nghĩa:
function hello_world
{
echo Hello World
}
Muốn lấy option
cùng lúc gọi file ta dùng getopts
(https://www.mkssoftware.com/docs/man1/getopts.1.asp)
Ta có thể viết:
while getopts "ad" opt; do
case $opt in
a ) echo "option is a" ;;
d ) echo "option is d" ;;
esac
done
Sau đó test thử:
FRAMGIA\pham.huy.cuong@pham:~/ll/shell-script$ ./backup.sh -a
option is a
FRAMGIA\pham.huy.cuong@pham:~/ll/shell-script$ ./backup.sh -d
option is d
FRAMGIA\pham.huy.cuong@pham:~/ll/shell-script$
Việc viết Shell-Script
cũng không đến nỗi quá khó, thử sử dụng để viết một lênh riêng của bạn, ví dụ làm cho lệnh ls -l
show ra bảng chẳng hạn:
Đầu tiên ta lấy dữ liệu từ lệnh ls -l
bằng cách
OIFS=$IFS; IFS=$'\n'; list_files=($(ls -ls)); IFS=$OIFS;
FILE_COUNTER="${#list_files[@]}"
Thêm các function
header
, body
, footer
function header
{
echo "---------------------------------------------------------------------------------------"
echo " Dir User Size Created at File name"
echo "---------------------------------------------------------------------------------------"
}
function body
{
index=1
while [ $index -lt $FILE_COUNTER ]
do
echo "${list_files[$index]}"
index=`expr $index + 1`
done
}
function footer
{
total_file_counter=`expr $FILE_COUNTER - 1`
echo "---------------------------------------------------------------------------------------"
echo "Total: $total_file_counter files"
}
Cuối cùng là gọi các function
đã được định nghĩa ở trên ra:
header
body
footer
Ta thử chạy file
list_file.sh
trên command:
FRAMGIA\pham.huy.cuong@pham:~/ll/shell-script$ ./list_file.sh
---------------------------------------------------------------------------------------
Dir User Size Created at File name
---------------------------------------------------------------------------------------
4 -rw-r--r-- 1 FRAMGIA\pham.huy.cuong FRAMGIA\domain^users 10 Th06 15 11:39 123456789
4 -rwxrw-rw- 1 FRAMGIA\pham.huy.cuong FRAMGIA\domain^users 1203 Th06 22 08:24 backup.sh
4 -rw-rw-rw- 1 FRAMGIA\pham.huy.cuong FRAMGIA\domain^users 10 Th06 15 11:39 test.txt
---------------------------------------------------------------------------------------
Total: 3 files
FRAMGIA\pham.huy.cuong@pham:~/ll/shell-script$
Chỉ là một ứng dụng nho nhỏ để làm cho việc show
file list
theo ý thích của bạn, cảm ơn và hi vọng bài viết giúp ích trong công việc của bạn
All rights reserved