❶ 用shell腳本中刪除某文件夾下的七天之前生成的文件夾
oldDate=$(date-d"-7days""+%Y%m%d")。
cdyourFolder#這里寫你的文件夾路徑。
forfolderin$(ls-d*/)。
do。
[${folder%/*}-lt$oldDate]&&rm-rf$folder。
done。
(1)shell腳本創建文件夾擴展閱讀:
shell腳本:
打開文本編輯器(可以使用vi/vim命令來創建文件),新建一個文件test.sh,擴展名為sh(sh代表shell),擴展名並不影響腳本執行,見名知意就好,如果你用php寫shell 腳本,擴展名就用php好了。
輸入一些代碼,第一行一般是這樣:
#!/bin/bashecho"HelloWorld!""#!" 是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種Shell。
echo命令用於向窗口輸出文本。
❷ linux中的shell腳本創建文件夾,若文件夾存在,則刪除重新創建,若不存在,直接創建,為什麼我的代碼不成
#!/bin/bash
dire="/tmp/mydire/"
[ -d "$dire" ] && rmdir "$dire"
mkdir "$dire"
這樣就可以了。
注意左中括弧後有一個空格,
右中括弧前有一個空格。
❸ shell腳本創建文件夾文件名稱為資料庫中表的一列
創建資料庫
選擇開始菜單中→程序→【Management
SQL
Server
2008】→【SQL
Server
Management
Studio】命令,打開【SQL
Server
Management
Studio】窗口,並使用Windows或
SQL
Server身份驗證建立連接。
在【對象資源管理器】窗口中展開伺服器,然後選擇【資料庫】節點
右鍵單擊【資料庫】節點,從彈出來的快捷菜單中選擇【新建資料庫】命令。
執行上述操作後,會彈出【新建資料庫】對話框。在對話框、左側有3個選項,分別是【常規】、【選項】和【文件組】。完成這三個選項中的設置會後,就完成了資料庫的創建工作,
在【資料庫名稱】文本框中輸入要新建資料庫的名稱。例如,這里以「新建的資料庫」。
在【所有者】文本框中輸入新建資料庫的所有者,如sa。根據資料庫的使用情況,選擇啟用或者禁用【使用全文索引】復選框。
在【資料庫文件】列表中包括兩行,一行是資料庫文件,而另一行是日記文件。通過單擊下面的【添加】、【刪除】按鈕添加或刪除資料庫文件。
切換到【選項頁】、在這里可以設置資料庫的排序規則、恢復模式、兼容級別和其他屬性。
切換到【文件組】頁,在這里可以添加或刪除文件組。
完成以上操作後,單擊【確定】按鈕關閉【新建資料庫】對話框。至此「新建的數據」資料庫創建成功。新建的資料庫可以再【對象資源管理器】窗口看到。
❹ linux shell腳本 創建文件夾 怎麼處理
shell腳本你可以理解為其實就是用一些控制語句、條件判斷語句、函數等語法,來自動化執行命專令屬和調用一些Linux的工具。
所以創建文件夾這樣簡單的操作當然是用命令來實現啦,用mkdir命令就可以了。mkdir參數:
-p:遞歸創建目錄,當有子目錄時用
-m:-m參數後面跟目錄的許可權,比如-m 711
❺ Shell腳本編程實戰
做 Java 的肯定都接觸過 Linux 系統,那麼很多時候我們在開發的過程中都是把我們項目打成一個jar包,或者是war包的形式,然後通過 XFTP 上傳到我們伺服器的指定目錄,然後運行一端啟動腳本,讓我們的項目變得可以訪問 就像 ./sh service.sh start 然後啟動我們寫好的 sh 的shell腳本。接下來我們就來學習一下關於 Shell 腳本是如何寫出來的。
Shell 腳本是什麼?Shell是一個命令解釋器,它的作用是解釋執行用戶輸入的命令及程序等,也就是說,我們用戶每輸入一條命令,Shell 就會相對應的執行一條命令。當命令或程序語句不在命令行下執行,而是通過一個程序文件來執行時,該程序文件就被稱為Shell腳本。
在我們的 Shell 腳本中,會有各種各樣的內容,賦值,計算,循環等一系列的操作,接下來我們就來看看這個 Shell 腳本怎麼寫吧
1.查看自己當前系統默認的 Shell
echo $SHELL
輸出:/bin/bash
2.查看系統支持的Shell
cat /etc/shells
輸出:
/bin/sh /bin/bash /usr/bin/sh /usr/bin/bash
也就是說,我們的雲伺服器是支持我們在這里給他安排 Shell 腳本的
我們這時候先來安排一下 sh 的文件,創建一個文件夾,然後在其中創建一個 sh 的文件。
mkdir /usr/local/shelltest
touch test.sh
創建完成我們編輯一下內容
vim test.sh
然後我們出來運行一下我們的 Shell 的第一個腳本
bash test.sh
出來的結果是 Hello World Shell
一個及其簡單的腳本出現了,接下我們就分析一波我們寫了點啥?
#!/bin/bash
#! 是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種 Shell
我們在之前也使用了 echo $SHELL 來查看了自己系統默認的是哪一種 sh 解析器,之前看到的是/bin/bash,所以我們在寫 Shell 腳本的時候,我們在開頭默認的約定中,我們寫了這個是用 /bin/bash 來進行解釋的,
那麼我們如何像之前調用我們的當前目錄中的 Shell 腳本一樣去調用他呢?就像這個樣子的 ./sh service.sh start
1.授權,
我們先不授權試一下看看能通過 ./test.sh 進行調用么
bash: ./test.sh: Permission denied 會提示這個,也就是沒有授權定義,
授權命令:chmod +x test.sh
2.執行 ./test.sh
然後調用就能正常輸出了,就是說,在當前的目錄下執行這個腳本命令。
變數命名實際上很簡單,我們先來試一下
name=yikeji
這時候我們怎麼使用變數呢?實際上只要在前面加上一個符號就可以 $
echo $name
上面的兩種寫法都是可以的,外面的大括弧加和不加區別不大,可以省略,直接就 $name 就可以使用你定義的變數
使用括弧的意義一般在於區別某些變數,比如你寫了一串的內容,可能寫的是 echo $nameismyfriend ,如果連在一起,是不是有點尷尬,這時候就可以使用括弧區別一下, echo ${name}ismyfriend 不使用括弧的時候,他就去找nameismyfriend這個變數了,就無法出來我們要的效果。
unset name
這時候我們就把我們剛才定義的 name=yikeji 這個變數給去掉了,我們可以調用一下我們的變數看是什麼?
echo $name
這是不是就證明我們自己定義的變數已經刪除了
那麼我們需要一個關鍵字,大家肯定能想到是什麼關鍵字 readonly
我們先給name賦值,然後使用 readonly 設置只讀,然後再改變一下試試,
竟然是真的,如果不設置只讀,是不是會重新可以進行賦值,我們測試個年齡,
所以我們就可以肯定,readonly就是設置只讀的關鍵詞,記住了么?
那麼設置只讀的變數可以刪除么?畢竟總有杠精的面試官會提問這個棘手的問題,但是,阿粉試過的所有方式好像都是不行的,阿粉就直接重啟了自己的伺服器,這樣臨時的變數就不存在了!
說真的,Shell腳本的流程式控制制數一般才是yyds,為什麼這么說,因為你在寫大部分的腳本的時候,流程式控制制的地方永遠是最多的,判斷,選擇,等等一系列的函數,當時熟練使用的時候,就發現這東西確實很有意思。
我們先說最簡單的 if else 這也是我們最經常使用的判斷,在寫 Shell 腳本的時候,就不像我們的 Java 中直接寫
Xshell 中的語法就不是這個樣子的, Xshell 語法:
末尾的 fi 就是 if 倒過來拼寫,我們可以寫一個 if 的腳本試一下這個流程能否理解。
這里申明一下,
我們在上面這段腳本中寫就是內容就是,我們給腳本傳入一個值,然後比對這個值和2的大小關系,然後輸出我們指定的內容。
運行後就能看到
$1 表示我們給 Shell 腳本輸入的第一個參數, $0 就是你寫的shell腳本本身的名字,$2 是我們給 Shell 腳本傳的第二個參數
大家在部署某些項目的時候,是不是啟動命令就很簡潔,就是 sh service.sh start 類似這種的,那我們來看看一般這種是怎麼寫的,這就用到了另外一塊的內容,和 if 類似,在 Java 中也有,那就是 Case .
我們先來看看 Case 的語法,
case ... esac 實際上就和 Java 中的 Case 是非常相似的,case 語句匹配一個值與一個模式,如果匹配成功,執行相匹配的命令. esac 是一個結束的標志。
光說不練,假把式,我們來搞一下試試寫一個腳本來搞一下。就用我們剛才說的 sh servic.sh start 來進行測試。
我們來看看運行結果
那麼這段 Shell 腳本是什麼意思呢?其實很簡單,匹配我們傳入的第一個字元,和 start 還有 stop 進行比較,如果匹配上之後,輸出命令,最後退出即可。
是不是感覺沒有那麼復雜了呢?
說到流程式控制制,那麼肯定不能不說 for , 畢竟 for 循環在 Java 中那可是重頭戲。
我們先看他的格式
那麼我們有沒有說像是 Java 中那種 for 循環一樣的方式呢?比如說這個 for ((i=1; i<=j; i++))
實際上也是支持這種的,我們來寫一個試試。
執行一下看看
既然有 for 那是不是就有 while 呢?是的,沒錯,確實是有 while ,也是循環的意思,但是寫法有略微不一樣的地方
我們來舉個嘗試列印九九乘法表來看一下
是不是也挺簡單的?
其實 Shell 腳本的編寫一般都是在實際應用中提升,單純的寫測試腳本,也是可以讓自己對知識的掌握比較充分,而我們一般都是寫一些比較簡單的腳本,復雜的不是還有運維么?