如何將命令結果傳遞給變量?將命令結果傳遞給循環外殼腳本中的變量
for file in find "$1" do
var = $file | cut -d/ -f6-
echo $var
...
done
如何將命令結果傳遞給變量?將命令結果傳遞給循環外殼腳本中的變量
for file in find "$1" do
var = $file | cut -d/ -f6-
echo $var
...
done
你的問題是不是所有的清楚,但
var=`cut -d/ -f6- < $file`
你是什麼之後?
幾個指針:
在shell腳本中空格真的很重要。您的代碼var = $file
是錯誤的,因爲不存在可執行文件var
,該文件知道如何處理參數=
和$file
。使用
var="$file"
取而代之。
要抓取$file | cut -d/ -f6-
管道的輸出,你需要的語法如下:
var="$(echo $file | cut -d/ -f6-)"
在最近的版本bash
您可以使用「這裏串」來代替,避免echo
和管道的費用。
var="$(cut -d/ -f6- <<<"$file")"
我注意到,你也試圖處理find
命令的結果,也有不正確的語法。這樣做的正確的語法是
while IFS= read -d $'\0' -r file ; do
var="$(cut -d/ -f6- <<<"$file")"
echo "$var"
done < <(find "$1")
我必須再次問你,什麼「字段6」是幹什麼的,因爲你已經問過類似的問題before。
命令結果給一個變量? variable = command(其中命令被''包圍) –