日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

$#,$@,$0,$1,$2,$*,$$,$?,${}

發布時間:2025/1/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 $#,$@,$0,$1,$2,$*,$$,$?,${} 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://dadekey.blog.51cto.com/107327/119938/ # touch variable # vi variable ? 腳本內容如下: ? #!/bin/sh echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"
保存退出 ? 賦予腳本執行權限 ? # chmod +x variable ? 執行腳本 ? # ./variable aa bb number:2
scname:./variable
first:aa
second:bb
argume:aa bb
show parm list:aa bb
show process id:24544
show precomm stat:0
?
通過顯示結果可以看到: ? $# 是傳給腳本的參數個數 $0 是腳本本身的名字 $1 是傳遞給該shell腳本的第一個參數 $2 是傳遞給該shell腳本的第二個參數 $@ 是傳給腳本的所有參數的列表 $* 是以一個單字符串顯示所有向腳本傳遞的參數,與位置變量不同,參數可超過9個 $$ 是腳本運行的當前進程ID號 $? 是顯示最后命令的退出狀態,0表示沒有錯誤,其他表示有錯誤 假設我們定義了一個變量為:
file=/dir1/dir2/dir3/my.file.txt
我們可以用 ${ } 分別替換獲得不同的值:
${file#*/}:拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最後一條 / 及其左邊的字串:my.file.txt
${file#*.}:拿掉第一個 . 及其左邊的字串:file.txt
${file##*.}:拿掉最後一個 . 及其左邊的字串:txt
${file%/*}:拿掉最後條 / 及其右邊的字串:/dir1/dir2/dir3
${file%%/*}:拿掉第一條 / 及其右邊的字串:(空值)
${file%.*}:拿掉最後一個 . 及其右邊的字串:/dir1/dir2/dir3/my.file
${file%%.*}:拿掉第一個 . 及其右邊的字串:/dir1/dir2/dir3/my
記憶的方法為:
# 是去掉左邊(在鑑盤上 # 在 $ 之左邊)
% 是去掉右邊(在鑑盤上 % 在 $ 之右邊)
單一符號是最小匹配﹔兩個符號是最大匹配。

${file:0:5}:提取最左邊的 5 個字?:/dir1
${file:5:5}:提取第 5 個字?右邊的連續 5 個字?:/dir2

我們也可以對變量值裡的字串作替換:
${file/dir/path}:將第一個 dir 提換為 path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:將全部 dir 提換為 path:/path1/path2/path3/my.file.txt

利用 ${ } 還可針對不同的變數狀態賦值(沒設定、空值、非空值):
${file-my.file.txt} :假如 $file 為空值,則使用 my.file.txt 作默認值。(保留沒設定及非空值)
${file:-my.file.txt} :假如 $file 沒有設定或為空值,則使用 my.file.txt 作默認值。 (保留非空值)
${file+my.file.txt} :不管 $file 為何值,均使用 my.file.txt 作默認值。 (不保留任何值)
${file:+my.file.txt} :除非 $file 為空值,否則使用 my.file.txt 作默認值。 (保留空值)
${file=my.file.txt} :若 $file 沒設定,則使用 my.file.txt 作默認值,同時將 $file 定義為非空值。 (保留空值及非空值)
${file:=my.file.txt} :若 $file 沒設定或為空值,則使用 my.file.txt 作默認值,同時將 $file 定義為非空值。 (保留非空值)
${file?my.file.txt} :若 $file 沒設定,則將 my.file.txt 輸出至 STDERR。 (保留空值及非空值))
${file:?my.file.txt} :若 $file 沒設定或為空值,則將 my.file.txt 輸出至 STDERR。 (保留非空值)

還有哦,${#var} 可計算出變量值的長度:
${#file} 可得到 27 ,因為 /dir1/dir2/dir3/my.file.txt 剛好是 27 個字?...

接下?恚贋櫬蠹醫檣砸幌 bash 的組數(array)處理方法。
一般而言,A="a b c def" 這樣的變量只是將 $A 替換為一個單一的字串,
但是改為 A=(a b c def) ,則是將 $A 定義為組數...
bash 的組數替換方法可參考如下方法:
${A[@]} 或 ${A[*]} 可得到 a b c def (全部組數)
${A[0]} 可得到 a (第一個組數),${A[1]} 則為第二個組數...
${#A[@]} 或 ${#A[*]} 可得到 4 (全部組數數量)
${#A[0]} 可得到 1 (即第一個組數(a)的長度),${A[3]} 可得到 3 (第一個組數(def)的長度)
A[3]=xyz 則是將第 4 個組數重新定義為 xyz ...

轉載于:https://www.cnblogs.com/xiaotlili/p/3195284.html

總結

以上是生活随笔為你收集整理的$#,$@,$0,$1,$2,$*,$$,$?,${}的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区看片 | 国产综合图片 | 日本欧美不卡 | 偷拍第一页 | 性淫影院 | 一级二级三级视频 | av图区| 黑人极品ⅴideos精品欧美棵 | 每日在线更新av | 色播一区二区 | 精品无人区无码乱码毛片国产 | 色综合五月 | 久久久电影 | 伊人精品在线视频 | 欧美日韩91 | 欧美色婷婷 | 久草不卡 | 成人性爱视频在线观看 | 国产又黄又| 欧美一级做性受免费大片免费 | www.色日本 | 三级福利片 | 亚洲免费av网址 | 亚洲色图50p | 久久激情片 | 天天插插插 | 玖玖在线免费视频 | 丁香六月激情综合 | 亚洲成人一级 | 国产视频在线一区 | 黄色短视频在线播放 | 在线免费你懂的 | 日本aaa视频| 日韩高清中文字幕 | 中文字幕在线播放一区 | 国产毛片基地 | 6080电视影片在线观看 | 国产婷婷在线视频 | 亚洲黄色激情 | 少妇人妻一区二区 | 18禁肉肉无遮挡无码网站 | 亚洲乱熟女一区二区三区小说 | 欧美三级a做爰在线观看 | 精品久久久影院 | 成人性生生活性生交3 | 色播综合网 | 中文字幕无产乱码 | 中文字幕一区二区在线播放 | 日日日日日日 | 国产在成人精品线拍偷自揄拍 | 成人久久毛片 | 欧美影视一区 | 日韩伦理视频 | 日韩人妻无码精品久久免费 | wwwsss在线观看 | 国产在线麻豆精品观看 | 日本少妇中文字幕 | 久操免费在线视频 | 韩国三级国产 | 66亚洲一卡2卡新区成片发布 | 日韩精品免费一区二区 | 永久免费在线观看视频 | 国产精品亚洲lv粉色 | 丁香花电影在线观看免费高清 | 中文字幕福利视频 | 欧美精品在欧美一区二区 | 国产无套免费网站69 | 日本福利片在线观看 | 91日韩中文字幕 | 免费裸体视频网站 | 神马午夜dy888 | xxxx性视频| 亚洲女则毛耸耸bbw 边吃奶边添下面好爽 | 黄色激情av | 99热97 | 少妇一区二区三区四区 | 久久亚洲av无码精品色午夜麻豆 | 日本美女久久 | 不卡的av片| 国产一级做a爱免费视频 | 人人干97| 免费日韩视频 | 国产农村妇女精品一区 | 西西人体高清44rt·net | 亚洲午夜久久久久久久久久久 | 在线sese| 农夫色综合 | 18无码粉嫩小泬无套在线观看 | 国产精品久热 | 久久成人动漫 | 亚洲自拍另类 | 男人午夜av | 亚洲精品中文无码AV在线播放 | 校园激情亚洲 | 偷拍亚洲综合 | se94se欧美 | 中文字幕一区二区久久人妻 | 午夜综合网 | 香蕉网在线观看 |