第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

請(qǐng)問怎樣能解決這個(gè)問題?Bash 腳本 `function` 怎樣捕獲帶空格的參數(shù)?

請(qǐng)問怎樣能解決這個(gè)問題?Bash 腳本 `function` 怎樣捕獲帶空格的參數(shù)?

PHP
海綿寶寶撒 2023-05-01 14:10:56
比如寫一個(gè) Bash 函數(shù), 創(chuàng)建并進(jìn)入一個(gè)目錄 newdir first-demo/, 用 alias 無法完成的,可如果我用的是 $1 進(jìn)行傳參 mkdir $1 && cd $1, 像 newdir second\ demo/ 就會(huì)出錯(cuò),結(jié)果是創(chuàng)建兩個(gè)目錄, 進(jìn)入到空格前的名字對(duì)應(yīng)的目錄.
查看完整描述

2 回答

?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

對(duì)bash編程不熟,說個(gè)無關(guān)的,我認(rèn)為更廣泛的原則是,對(duì)于shell有特殊含義的字符,在使用的時(shí)候還是應(yīng)該用引號(hào),這應(yīng)該是shell通用的原則。

mkdir 'lol omg'


查看完整回答
反對(duì) 回復(fù) 2023-05-03
?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

shell有特殊含義的字符,在使用的時(shí)候還是應(yīng)該用引號(hào),這應(yīng)該是shell通用的原則

不過要補(bǔ)充幾點(diǎn):

  1. 對(duì)于你上面的創(chuàng)建并進(jìn)入一個(gè)目錄的腳本來說,mkdir $1并不能創(chuàng)建目錄second demo/,因?yàn)镾hell傳遞給腳本的$1是second demo,于是mkdir $1相當(dāng)于mkdir second demo,會(huì)創(chuàng)建兩個(gè)目錄。所以需要使用雙引號(hào),即:mkdir "$1".

  2. 用./newdir執(zhí)行腳本時(shí),Shell會(huì)fork一個(gè)子進(jìn)程并調(diào)用exec執(zhí)行這個(gè)腳本,因此cd ..命令改變的是子Shell的PWD,而不會(huì)影響到交互式Shell的pwd。

  3. 如果想在當(dāng)前shell進(jìn)程執(zhí)行腳本,可以使用.或者source命令。

腳本如下:

mkdir "$1" && cd "$1"

用source或者. 執(zhí)行結(jié)果:

$ pwd
/home/user/etc
$ source ./a.sh 'new dir'
$ pwd
/home/user/etc/new dir


查看完整回答
反對(duì) 回復(fù) 2023-05-03
  • 2 回答
  • 0 關(guān)注
  • 185 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)