溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

shell腳本實(shí)現(xiàn)自動(dòng)生成文件并更改其權(quán)限

發(fā)布時(shí)間:2020-07-30 15:12:02 來源:網(wǎng)絡(luò) 閱讀:6008 作者:weiqi7777 欄目:開發(fā)技術(shù)

 

在學(xué)習(xí)shell的時(shí)候,會(huì)不斷的創(chuàng)建新文件,然后在新文件中的編寫shell腳本學(xué)習(xí)。于是就有如下幾個(gè)步驟:

1、 使用touch命令新建shell腳本

2、 編寫shell腳本

3、 使用chmod更加shell腳本權(quán)限,使其具有可執(zhí)行權(quán)限,然后執(zhí)行

當(dāng)多寫幾個(gè)腳本后,就發(fā)現(xiàn)這個(gè)過程很繁瑣,而且新建的shell腳本是以數(shù)字升序進(jìn)行創(chuàng)建的。為什么不寫一個(gè)腳本來實(shí)現(xiàn)上述三個(gè)過程了。于是就開始了,結(jié)果花了好長一段時(shí)間才弄出來,真實(shí)慚愧,還是對(duì)shell不熟悉了。

先說說實(shí)現(xiàn)的思路:

1、 先得到目錄下最新的腳本名,提取數(shù)字

2、 將數(shù)字加1,然后和.sh進(jìn)行拼接,得到新的腳本名

3、 使用touch創(chuàng)建新腳本

4、 使用chmod更改權(quán)限

對(duì)于第一步:

使用ls –t參數(shù), 以時(shí)間排序顯示。


    要提取第一行數(shù)據(jù),需要使用head –n 1,因此使用管道,將兩個(gè)命令拼接。

shell腳本實(shí)現(xiàn)自動(dòng)生成文件并更改其權(quán)限

    要提取其中的數(shù)字。使用tr –cd ‘[0-9]’,將處理字符串中的除0-9之外的所有字符刪除掉,還是需要使用管腳,與之間的命令拼接。

shell腳本實(shí)現(xiàn)自動(dòng)生成文件并更改其權(quán)限

    這里后面加echo只是為了讓得出來的數(shù)字顯示在一行。

    所以在腳本中,就下面一句代碼就搞定了。將提取出來的數(shù)字保存在變量number中。

shell腳本實(shí)現(xiàn)自動(dòng)生成文件并更改其權(quán)限

    

    第二步:

    使用$(( 表達(dá)式 )) 進(jìn)行數(shù)學(xué)運(yùn)算。

shell腳本實(shí)現(xiàn)自動(dòng)生成文件并更改其權(quán)限

    拼接,直接將字符串連寫一起即可。

shell腳本實(shí)現(xiàn)自動(dòng)生成文件并更改其權(quán)限


    第三步:

    使用bash的 `命令` 來執(zhí)行shell命令。

shell腳本實(shí)現(xiàn)自動(dòng)生成文件并更改其權(quán)限


    第四步:

    還是使用bash的 `命令` 來執(zhí)行shell命令

shell腳本實(shí)現(xiàn)自動(dòng)生成文件并更改其權(quán)限

    所以,只需要如下幾句代碼即可實(shí)現(xiàn)想要的功能了。

number=`ls -t | head -n 1 | tr -cd '[0-9]'`
number=$(( $number + 1 ))
new_sh_file="$number"".sh"
`touch $new_sh_file`
`chmod a+x ./ -R`

    還可以將該腳本賦值到/usr/bin目錄下,這樣,以后在什么地方都可以直接執(zhí)行該腳本了。



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI