linux - Shell脚本不从输入文件中获取参数

标签 linux bash shell ksh

我有一个包含用户名和主题的输入文件。

输入

sk7865  /opt/apps/login

sk4888 /opt/apps/info

我正在编写一个 shell 脚本来从上述文件中获取输入并发送邮件。

shell 脚本

#!/bin/bash
while read a b

    echo echo ""$a""  | mail -s ""$b"" "$a"@example.com

done < input

在上面的脚本中,我想使用的实际命令是:-

echo "hello world"  | mail -s "a subject" someone@example.com

我希望它在 hello worlda subject 中采用参数 a,b 来将电子邮件发送给某人,就像我在脚本中使用的那样。但它没有接受论据。我认为这与双引号有关。请向我提供适当的脚本。

最佳答案

你似乎错过了一段时间后的do:

#!/bin/bash

while read -r a b
do
  echo "$a" | mail -s "$b" "$a"@somewhere.com

done < input

请记住始终运行 shellcheck在此处发布之前在你的 bash 脚本上。

此外,您在 ""xyz"" 处有一个 echo echo 和双引号。

关于linux - Shell脚本不从输入文件中获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44782180/

相关文章:

无法为 enp4s0 上的套接字设置 SO_BINDTODEVICE

linux - make 的目标给出 "nothing to be done"

bash - mawk 语法适用 >1000 字段文件用于按列计算非数字数据?

bash - 如何从文件中读取变量,每行有多个变量?

linux - OPC Publisher 模块无法在我的 Ubuntu VM 上作为边缘模块启动

c++ - ld 两台计算机之间的不同行为

Node.js 语法错误 : Unexpected end of input

shell - Ubuntu linux命令提取子字符串里面

linux - 如何在 GRUNT shell 中取消命令

linux - 为什么使用 ./shell.sh 会出错但是 . shell.sh 有效