linufor迴圈變數中有空格怎麼處理

2021-03-03 20:27:52 字數 1234 閱讀 8184

1樓:

這個需要更改 shell分隔符為換行

在for迴圈

之前修改ifs變數

ifs=$'\n'

oldifs="$ifs"

for i in `find . `

doecho "$i"

done

ifs="$oldifs"

這樣迴圈就會以換行作為版單詞分界.你的檔名如權果出現換行,那就無能為力。

雖然linux 支援檔名包含特殊字元

但並不推薦,會導致別的指令碼出錯誤。通常用下劃線或**代替空格。

還有一種用

find some|while read idoecho "$i"

done

用read i,每個迴圈讀取一行,等價與用換行作為分隔符。

記得採納

shell裡面如何給乙個變數補空格,並存入變數

2樓:匿名使用者

我的可以輸出空格啊,

[root@xiao ~]# test=`printf "%4d\n" 1`

[root@xiao ~]# echo "$test"

1你可以把test=」`printf "%4d\n" 1`「 也加上雙引號試試。

3樓:匿名使用者

echo "$test"不會保留空格 echo $test不會保留空格。「」會保持變數的原態,部分不會保持原態**義)而''會完全保持原態echo '$test'會輸出$test。如果什麼都不加變數會自動過濾一些特殊字元。

變數的狀態是不可知的。雙引號作用是變數替換是不被阻止的。所以雙引號稱為部分引用。

單引號作用會把變數替換完全被禁止。變數名只會被解釋稱字面意思。不會發生變令替換。

所以被成為全部引用。

shell指令碼讀取檔案,檔案是有多個字串,中間是空格。這個指令碼要怎麼寫呀?求高手指教

4樓:匿名使用者

#!/bin/bash

myfile=/path/filenamecat $myfile | while read linedoecho "$line" #輸出整行內容echo "$line" | awk '' #輸出每行第乙個字段

done

以上是示例,根據你的需要自版己修改吧。權

5樓:小公尺飛貓

grep -op '\w+' file

c語言中跳出for迴圈體迴圈變數的變化

那要看你bai是在 定義的迴圈變數 du,如果是區域性變zhi量的話,在模組 dao內跳出迴圈後i的值在 版不被改變的情況下等權於7,退出模組後,無法訪問到i,也就是說在外部模組i是不可見的 如果是全域性變數,那麼在翻譯單元內,i的值都為7 在不被改變的情況下 最有效率的辦法就是i不變化。所以在c語...

太空中有黑洞嗎,太空中有空氣嗎?

黑洞簡介 黑洞廣義相對論預言的一種特別緻密的暗天體。大質量恆星在其演化末期發生塌縮,其物質特別緻密,它有乙個稱為 視界 的封閉邊界,黑洞中隱匿著巨大的引力場,因引力場特別強以至於包括光子在內的任何物質只能進去而無法逃脫。形成黑洞的星核質量下限約3倍太陽質量,當然,這是最後的星核質量,而不是恆星在主序...

為何for迴圈裡能直接用函式裡的變數

風若遠去何人留 依次回答你的問題 迴圈每一次執行完,tt都會被釋放吧?正確 每次都會釋放 這是為何?因為tt是區域性變數吧?正解 何為區域性?就是那個大括號麼?區域性變數就是定義在函式內部的變數 根據在函式內定義位置不同而有不同作用域 其作用域可以理解為 從定義位置開始到下一個大括號結束那麼for迴...