溫馨提示×

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

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

linux系統(tǒng)下怎么用.sh文件執(zhí)行python命令

發(fā)布時(shí)間:2022-07-27 17:27:16 來(lái)源:億速云 閱讀:238 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下linux系統(tǒng)下怎么用.sh文件執(zhí)行python命令的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

    標(biāo)準(zhǔn)版

    假設(shè),在終端要執(zhí)行的命令是:

    python main.py

    首先在執(zhí)行目錄下創(chuàng)建test.sh(文件名自定義)文件

    并在test.sh文件中寫入:

    python main.py

    保存。

    ======================== 經(jīng)實(shí)踐 下面這一步可省 =================================

    在終端執(zhí)行:

    chmod a+x test.sh

    以上命令使test.sh成為可執(zhí)行文件。

    ======================== 經(jīng)實(shí)踐 上面這一步可省 =================================

    再在終端執(zhí)行:

    bash test.sh

    即可用bash命令執(zhí)行python main.py。

    進(jìn)階版

    在.sh文件中輸入更多內(nèi)容實(shí)現(xiàn)調(diào)參過(guò)程,具體語(yǔ)法參考shell指令。

    1 for循環(huán)

    將test.sh 文件中的內(nèi)容改為:

    for num in 1 2 3 4 5 6 7 8 9 10
    do
        python main.py
    done

    再在終端執(zhí)行:

    sh test.sh

    以上代碼可以實(shí)現(xiàn)將python main.py循環(huán)執(zhí)行10次。

    假設(shè)main.py是可以輸入?yún)?shù)的:

    python main.py --epoches 5

    以上命令代表可以指定main.py中epoches的大小。

    于是,可以通過(guò)修改.sh文件的內(nèi)容實(shí)現(xiàn)調(diào)參(其中,$表示引用變量的值):

    for num in 1 2 3 4 5 6 7 8 9 10
    do
        python main.py --epoches $num
    done

    以上代碼可以使python main.py在epoches在1~10的范圍內(nèi)都跑一遍。

    2 嵌套for循環(huán)

    同時(shí)對(duì)epoches和learning_rate進(jìn)行調(diào)整:

    for num in 2 3 4 5 6 7 8 9 10
    do
        for b in 3e-5 2e-5 1e-5 5e-6 3e-6 2e-6 1e-6
            do
                python main.py --epoches $num --learning_rate $b
            done
    done

    3 定義變量名

    要將運(yùn)行結(jié)果保存到指定文件,文件名由變量名決定,假設(shè)原命令:

    python main.py --epoches 5 --learning_rate 5e-5 --log log.txt

    修改test.sh文件如下:

    for num in 2 3 4 5 6 7 8 9 10
    do
        for b in 3e-5 2e-5 1e-5 5e-6 3e-6 2e-6 1e-6
            do
                python main.py --epoches $num --learning_rate $b --log ${num}$b.txt
            done
    done

    此時(shí)log文件名有num和b組成,eg.,23e-5.txt

    養(yǎng)成好的書寫習(xí)慣,變量名用{}引起來(lái)。

    4 寫if函數(shù)

    if函數(shù)的語(yǔ)法如下:

    if [ ${a} == "a" ] && [ $ == "b" ]; then
    echo "pass"
    fi

    多層if函數(shù):

    if [ ${a} == "a" ] && [ $ == "b" ] ; then
    echo "pass"
    elif [ ${a} == "b" ] && [ $ == "a" ] ; then
    echo "pass"
    else
    echo "pass"

    以上語(yǔ)法的幾個(gè)注意事項(xiàng):

    • []和內(nèi)部的語(yǔ)句要用空格分開,不能連在一起

    • 結(jié)尾fi和開頭的if是對(duì)應(yīng)的,不能省略

    • echo部分可以換為任何想執(zhí)行的程序

    • 在一段連續(xù)的執(zhí)行命令之間,不可以都注釋語(yǔ)句,會(huì)報(bào)錯(cuò),例如如下情況

    以上就是“l(fā)inux系統(tǒng)下怎么用.sh文件執(zhí)行python命令”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

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

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

    AI