這個題目是
輸入a:建立自己名字的資料夾,如果有這個資料夾的話,就讀取file1和file2的檔案內容
輸入b:獲取當前使用者對file1和file2檔案許可權
輸入c:內容轉為大寫
輸入d:計算連線和檔案數目
輸入e:計算檔案空行數目
以下是我的**:
#! bin/bashread opts;
case $opts in'a
') if [ -d ~/li ];then
cp ./file1 ~/li;
cp ./file2 ~/li;
cat ~/li/file1;
cat ~/li/file2;
else
mkdir ~/li;
chmod -r 755 ~/li;
fi;; 'b
') if [ -d ~/liwei ];then
file1=$(ls -l ~/li | grep
'file1
'| awk -f ""'
' | cut -d '
.' -f 1
); file2=$(ls -l ~/li | grep
'file2
'| awk -f ""'
' | cut -d '
.' -f 1
);
echo
your power of file1 is $file1;
echo
your power of file2 is $file2;
else
echo please excute 'a'
first;
fi;; 'c
') if [ -d ~/li];then
file1=$(cat ~/li/file1);
file2=$(cat ~/li/file2);
upper=$(echo $file1 | tr
'[a-z]''
[a-z]');
lower=$(echo $file2 | tr
'[a-z]''
[a-z]');
echo
'uppercase show of file1 and file2:';
echo
$upper;
echo
$lower;
else
echo please excute 'a'
first;
fi;;'d
') file_str=$(ls -l /dev | awk -f ""'
' | cut -c 1 | tr
\n , );
file_arr=($file_str);
l_num=0
; d_num=0
;
for x in
$
doif [ "
$x" = "
d" ];then
d_num=$(($d_num + 1
));
fiif [ "
$x" = "
l" ];then
l_num=$(($l_num + 1
));
fidone
echo the number of directory in
dev is $d_num;
echo the number of link in
dev is $l_num;
;;'e
') line_num=0
; test_num=0
;
if [ -d ~/li ];then
while
read line
doif [[ ! -n $line ]];then
line_num=$(($line_num + 1
));
fidone
< ~/li/file1
echo
"the number of blank line is $line_num";
else
echo please excute 'a'
first.
fi;;
esac
exit
Linux之shell程式設計基礎
變數在shell中分為 本地變數 環境變數 位置引數 本地變數 僅可在使用者當前shell生命期的指令碼中使用的變數,本地變數隨著shell程序的消亡而無效,本地變數在新啟動的shell中依舊無效,類似於c c 中的區域性變數的概念 環境變數 適用於所有登入程序所產生的子程序 位置引數 用於向she...
Shell指令碼程式設計基礎之shell指令碼退出狀態碼
exit 在指令碼中本身是退出的作用 根據程式執行的結果,返回對應的狀態碼,幫助實現條件判斷 21 15 48 root c8 3 55 grep q root etc passwd echo grep q admin etc passwd echo grep q root abc echo gre...
Shell指令碼程式設計基礎之shell指令碼條件測試命令
注意 表示式前後必須有空白字元 05 19 35 root c8 3 55 help test test test 表示式 對條件表示式進行估值。根據 expr 表示式的估值以狀態 0 真 或 1 偽 退出。表示式可以是一元或者二元的。一元表示式通常用於檢測 檔案狀態。同時還有字串操作符和數字比較操...