簡體   English   中英

BASH腳本中的for循環問題

[英]problem with for loop in BASH script

我正在嘗試在我的腳本中執行以下循環,以便將郵件發送到我在腳本中先前編寫的某個文件中的所有用戶。 我檢查文件$ ​​eUsers是否為空我執行以下操作:

for name in `cat $eUsers | cut -d' ' -f2`
do
echo "message" > /letter
cat /letter | mail -s "message" $name
done
  • 在腳本的開頭我定義了$ eUsers =“/ filename”。
  • 代碼: cat $eUsers | cut -d' ' -f2 cat $eUsers | cut -d' ' -f2獲取用戶名。 我在終端試了一下,它正在工作。 我嘗試將上面的代碼放在一個單獨的文件中,用它的路徑(/ filename)替換“$ eUsers”,它沒有任何問題。

但是,當我在我的腳本中使用該代碼時,在文件$ eUsers中寫入后,它進入無限循環。 我不明白為什么會這樣做。 在原始文件中,由於行cat /letter | mail -s "message" $name似乎發生無限循環 cat /letter | mail -s "message" $name

#!/bin/bash

while read junk name; do
  echo "message" | mail -s "message" "$name"
done < "$eUsers"

暫無
暫無

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

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