乙個liunx命令題目引發的對shell的回顧

2021-08-07 12:14:12 字數 1401 閱讀 9638

原題回顧:列印當前資料夾下所有的.txt檔案的最後一行到新檔案newfile.txt中

其答案最後解答如下

#!/bin/bash

for file in `ls .`

doif [ -f

$file ] && [[ $file =~ .*\.txt ]]

then

tail -1

$file >> newfile.txt

fidone

在實現的過程中遇到了一些問題,也是一些重要的知識點。

shell指令碼的頭部加上bash所在的位置

如#!/bin/bash

使用for遍歷乙個命令返回的列表

可以使用**`**符號包圍乙個命令來獲取其返回值,如ls .`返回當前目錄下所有的檔案(包括目錄),for迴圈取得其下所有的檔名稱。

for的基本語法格式是

for variant in `cmd`

dovariant do sth.

done

使用if語句進行判斷變數的值

引用變數的值使用$variant,其中if語句的格式為

if condition

then

do sth.

elif condition

do sth.

else

do sth.

fi

condition可以用test condition,或者[ condition ]或者[[ condition ]]注意方括號condition左右都有空格,其中可以直接使用》,《等符號,而能夠使用的符號比較少。

在condition中使用正規表示式進行匹配,例如[[ $file =~ .*.txt ]],匹配檔名字尾名為txt的檔案,注意=~符號的前後也要右空格,並且正規表示式是不加引號的,如果要加,前面的變數也要加上。

正規表示式.*代表任意一串字元,*是代表前面的字元重複0-1次而已。^pattern,代

表以什麼

開頭, 代表以什麼結尾

[ -f $file ]代表檔案是乙個檔案而不是目錄,兩個表示式可以用&&,||連線

讀乙個檔案的最後一行

tail -number file顯示檔案的後幾行

head -number file顯示檔案的前幾行

重定向符號

單個》代表重定向到檔案,但是會覆蓋原來的內容,兩個》代表後來新增

每天乙個liunx 命令 cp

cp 命令 作用cp 複製命令,用於系統間檔案或者目錄的複製 用法usage cp option t source dest 引數說明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a 或 archive 此引數的...

乙個簡單的小題目引發的血案

我們在做題的時候,經常遇到一些情況,就是明明能過樣例,但是提交卻總是wa,往往會讓人內心崩潰,提交一遍兩遍還行,如果提交了四遍以上,我就會想,唉,算了吧,先換一題,換換思路,後來又想,都已經做了這麼久了,再找一下就能找到結果了,我以我最近乙個提交了7次才ac的經驗來警示自己,以此自勉 題目描述 有二...

乙個賦許可權命令引發的問題

今天為了加強機器的許可權控制,讓運維兄弟把所有的訓練機器的root許可權收回,只是給了dev許可權,當我登上dev的時候發現沒有寫的許可權,趕緊找運維要了臨時root許可權給每個使用者配置乙個賬號,分配了乙個目錄可以寫,同時給一些執行第三方的命令賦權,然後出問題了,步驟太大導致在賦許可權的時候出現重...