亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

linux 中 read命令的字符讀取問題

linux 中 read命令的字符讀取問題

達令說 2018-09-24 10:25:52
在使用read時候 碰到以下問題,與所想不一致,代碼及結果如下#!/bin/bashIFS=' ' read -d '-' var1 var2 <<< " 123 -"printf "%s\n" "var1=$var1= var2=$var2="IFS='|' read -d '-' bar1 bar2 <<< "|123|-"printf "%s\n" "bar1=$bar1= bar2=$bar2="我預期的結果應該是var1== var2=123=bar1== bar2=123=但實際的結果是這樣var1=123= var2==bar1== bar2=123=我的疑問,對于第一個測試例子來講,我既然指定了IFS的分隔符為' '空格,那么 var1為什么不是空呢。
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

read命令天生就是以空格為分隔符的,在這里你指定和不指定IFS=' '效果是一樣的。并且read天生就是要切掉一行的開頭和結尾的空格,這個特性也是無法改變的。而唯一不讓read切掉開頭和結尾空格的作法是指定一個空IFS,如IFS='',但是這樣一來,字符串中間的空格也不再被當作分隔符了。所以唯一的作法是把字符串中的空格替換成其它非空格的字符如逗號等等,然后再用IFS進行拆分。

查看完整回答
反對 回復 2018-09-24
  • 1 回答
  • 0 關注
  • 830 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號