下cat命令似乎外面做工精細for循環,但是當我把它放在它裏面給出了一個語法錯誤:擊:內使用貓循環
for i in 1 2 3 4 5 do
cat file_$i | grep "random text" | cut -d':' -f2 > temp_$i
done
有人能向我解釋,正確的方法寫這個?謝謝
下cat命令似乎外面做工精細for循環,但是當我把它放在它裏面給出了一個語法錯誤:擊:內使用貓循環
for i in 1 2 3 4 5 do
cat file_$i | grep "random text" | cut -d':' -f2 > temp_$i
done
有人能向我解釋,正確的方法寫這個?謝謝
你並不需要通過把1 2 3 4 5
循環。可以使用bash brace expansion。 {1..5}
for i in {1..5}; do
##
done
我總是喜歡把「做」中的下一行,這樣有助於我不記得使用分號:
for i in 1 2 3 4 5
do
cat file_$i | grep "random text" | cut -d':' -f2 > temp_$i
done
在bash中「行尾」被bash編譯器隱式視爲命令/語句的結束。
例子:
echo "Hello"
exit
#No need of semi-colons here as it is implicit that the end of the line is the completion of the statement
但是,當你想添加兩條語句在同一行/命令,你需要通過分號隔開它們;明確()。
例子:
echo "hello"; exit
#here semi-colon implies that the echo statement ends at the semi-colon and from there on to the end of the line is a new statement.
對於 「for語句」,語法都按:
for variable in (value-set)
do
----statements----
done
所以,要麼你把for
,do
,statements
和新線done
或用分號分隔它們。
它給出了什麼錯誤?而且,grep可以將文件作爲參數,因此您不必捕獲文件並將其傳送給它。 –
「在意外標記'cat'附近出現語法錯誤」 – Alex