簡體   English   中英

Bash shell腳本 - 設置變量時出錯

[英]Bash shell scripting - Error setting variables

我是bash腳本的新手。 我嘗試了以下方法:

filename01 = ''

if [ $# -eq 0 ]
        then
                filename01 = 'newList01.txt'
        else
                filename01 = $1
fi

我收到以下錯誤:

./smallScript02.sh: line 9: filename01: command not found
./smallScript02.sh: line 13: filename01: command not found

我想我沒有正確對待變量,但我不知道如何。 另外,我正在嘗試使用grep從文本文件中提取第二個和第三個單詞。 該文件如下所示:

1966 Bart Starr QB Green Bay Packers 
1967 Johnny Unitas QB Baltimore Colts 
1968 Earl Morrall QB Baltimore Colts 
1969 Roman Gabriel QB Los Angeles Rams 
1970 John Brodie QB San Francisco 49ers 
1971 Alan Page DT Minnesota Vikings 
1972 Larry Brown RB Washington Redskins 

任何幫助,將不勝感激

在bash中分配變量時,在=號的兩邊都不應有空格。

# good
filename0="newList01.txt"
# bad
filename0 = "newlist01.txt"

對於第二個問題,請使用awk not grep 下面將從名稱存儲在$filename0中的文件的每一行中提取第二和第三項:

< $filename0 awk '{print $2 $3}'

在bash(和其他bourne-type shell)中,如果變量為空或未設置,則可以使用默認值:

filename01=${1:-newList01.txt}

我建議花一些時間使用bash手冊: http//www.gnu.org/software/bash/manual/bashref.html

這是一種提取名稱的方法:

while read first second third rest; do
    echo $second $third
done < "$filename01"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM