<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 實用篇 ## 1.shell判斷字符串或者read的是否為數字 ``` read -p "Please select the operation number you need to perform:" input #判斷輸入是否為數字 expr $input "+" 10 &> /dev/null if [ $? -eq 0 ];then echo "$1 is number" else echo "$1 not number" fi ``` ## 2.shell腳本只列出目錄下的所有文件 ``` files=$(ls -l ./ |awk '/^-/ {print $NF}') echo index=1 for sfile in $files #加載功能 do echo ${index}.${sfile} index=$[$index+1] done ``` ## 3.列出當前目錄下所有文件夾 ``` #獲取當前路徑下所有文件夾名稱 dir=$(ls -l ./ |awk '/^d/ {print $NF}') cnt=1 for i in $dir do linux_list[cnt]=$i #存儲菜單到數組linux_list echo ${cnt}.${linux_list[cnt]} cnt=$[$cnt+1] done ``` ## 4.讀取文件第n行內容 ``` content=`awk 'NR==2' ${sfile}` #讀取文件第2行內容 ``` ## 5.刪除、替換字符串中指定的字符 ``` text="#1234455#rr" # 只替換字符串中第一個#為- text=${text/#/-} # 替換字符串中所有#為- text=${text//#/-} ``` 注意:使用替換當然可以實現刪除指定字符的目的。 ## 6.目錄路徑截取 ``` FILE=/home/yhp/prj appname=${FILE##\*/} #掃描字符,截取最有一個/符號后面的字符出來 ``` ## 7.獲取時間日期并打印 ```bash starttime=$(date +%Y-%m-%d\\ %H:%M:%S) echo $starttime ttime=`date +"%Y-%m-%d %H:%M:%S"` echo $ttime ``` ## 8.將變量寫入文件和從文件讀取變量的一中方法 ``` #!/bin/bash #[shell] #將shell中使用的變量存入文件中,以及從文件調取變量 ################################################ #文件中的格式為 VAR= 變量 #注意上面的等于號后面一定要有個空格才行 #假設var.dat文件中有一行為 VAR= yuan-hp #那么腳本讀取就是 var=`awk ’/VAR=/{print $2}‘ var.dat` #其實就是讀取該行第二例,所以按空格分列,你的變量不能含有空格 #當然可以通過-F參數自定義分隔符號來實現空格額問題 ################################################ clear echo "LOG | 開始執行 var_to_file.sh腳本" VAR=./tmp/var.dat #文件路徑 #新建文件用于測試 if [ ! -f $VAR ];then #沒有文件則創建文件 echo "LOG | 生成變量存儲文件:$VAR" echo "VAR_PATH= $VAR">$VAR echo "A=123">>$VAR echo "B=324">>$VAR echo "STR=sfgrtt">>$VAR fi #從文件讀取變量 A=`awk '/A=/{print $2}' $VAR` B=`awk '/B=/{print $2}' $VAR` STR=`awk '/STR=/{print $2}' $VAR` VAR_PATH=`awk '/VAR_PATH=/{print $2}' $VAR` echo "A=$A" echo "B=$B" echo "STR=$STR" echo "VAR_PATH=$VAR_PATH" ``` 自定義分隔符: ``` clear echo "LOG | 開始執行 var_to_file.sh腳本" VAR=./tmp/var.dat #文件路徑 #新建文件用于測試 if [ ! -f $VAR ];then #沒有文件則創建文件 echo "LOG | 生成變量存儲文件:$VAR" echo "VAR_PATH=$VAR">$VAR fi #從文件讀取變量 A=`awk -F'=' '/A=/{print $2}' $VAR` B=`awk -F'=' '/B=/{print $2}' $VAR` STR=`awk -F'=' '/STR=/{print $2}' $VAR` VAR_PATH=`awk -F'=' '/VAR_PATH=/{print $2}' $VAR` if [ -z $A ];then echo A為空 fi echo "A=$A" echo "B=$B" echo "STR=$STR" echo "VAR_PATH=$VAR_PATH" ``` ![](https://img.kancloud.cn/6c/9f/6c9f323d49d726a883a2a3d2d6ba78a2_538x189.png) ![](https://img.kancloud.cn/d4/cd/d4cd0ed1429c73e573980e65ff4ea711_307x196.png) ## 9.linux中bash變量自加方法 [**Linux**](http://www.51testing.com/?uid-225738-action-viewspace-itemid-220988)?[**Shell**](http://www.51testing.com/?uid-225738-action-viewspace-itemid-220988)中寫循環時,常常要用到變量的自增,現在總結一下整型變量自增的方法。 1. i=`expr $i + 1`; 2. let i+=1; 3. ((i++)); 4. i=$[$i+1]; 5. i=$(( $i + 1 )) ## 10.獲取文件大小 ` `可使用`do -b filename`獲取,如下: ![](https://img.kancloud.cn/ce/2a/ce2a8bcf68ec6d27acd3a56d13bdf953_620x226.png) 得到文件大小為4bytes ## 11.使用dd實現文件分割 ``` dd的作用是轉換和拷貝文件,我們可以利用它來分割文件,相關的選項如下: if=filename:輸入的文件名 of=finename:輸出的文件名 bs=bytes:一次讀寫的字節數,默認是512bytes skip=blocks:拷貝前,跳過的輸入文件的前blocks塊,塊的大小有bs決定 count=blocks:只拷貝輸入文件的前blocks塊 例如,現在有一個文件file,大小為116616字節: [root]# du -b file? 116616? file? 將其分割為兩文件file1和file2,那我們就設置每塊為1024字節,將file的前60塊放入file1,余下的放入file2: [root]# dd if=file bs=1024 count=60 skip=0? of=file1? [root]# dd if=file bs=1024 count=60 skip=60 of=file2 可以用md5sum驗證一下file和file.bak: [root]# md5sum file? 3ff53f7c30421ace632eefff36148a70? file? [root]# md5sum file.bak? 3ff53f7c30421ace632eefff36148a70? file.bak? 可以證明兩個文件時完全相同的。 ``` ## 12.查看二進制文件 ``` #使用xxd查看二進制文件內容 xxd hexfile.hex hexdump hexfile.hex ``` ![](https://img.kancloud.cn/7d/47/7d479f900d7db13a35baa31752d20bae_665x400.png) ## 13.獲取字符串的長度 ``` len=`echo 'string' |wc -L` #獲取字符串長度 ``` ## 14獲取當前終端的寬度 ``` col=`stty size|awk '{print $2}'` ``` # 網絡篇 ## 1.shel中是一個jq解析json串 語法:jq '.key' ```shell #!/bin/bash #聯網隨機獲取一句語句并顯示 while true do clear js=`curl -s https://v1.hitokoto.cn/` text=` echo $js | jq '.hitokoto'` text=${text//\"/} #去除引號 echo $text sleep 5s done ``` ## 2.bash將字符轉換為urlencode ``` key=`echo '黃昏' | tr -d '\\n' | xxd -plain | sed 's/\\(..\\)/%\\1/g'` ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看