来自文本文件的shell脚本的参数

时间:2017-03-08 07:37:46

标签: bash shell csh

我有一个文本文件(Text.txt),内容如下,

  1. Name1 Text1
  2. 名称2
  3. Name3 Text3
  4. 我想编写一个shell脚本,我必须将Name1,Name2和Name3作为第一个参数,将Text1 / Text3作为第二个参数。 条件:如果存在第二个参数,我的脚本应检查每一行。

    我的输出应显示如下:

    1. Arg1:Name1 Arg2:Text1
    2. Arg1:Name2 Arg2:找不到args
    3. Arg1:Name3 Arg2:Text3
    4. 我不知道从哪里开始。 有人可以帮助我。

2 个答案:

答案 0 :(得分:1)

read循环中使用while

while read -r cmd args; do
  printf "Arg1: %s Arg2: %s\n" "$cmd" "${args:-No args found}"
done < Text.txt

Bash参数展开与${args:-No args found} $args一起使用,No args found设置为Microsoft.AspNetCore.Rewrite值是未设置或为空。

我删除了前导数字,因为我不确定它们是否存在于您的文本文件中。

答案 1 :(得分:0)

您可以运行以下命令:

abcd xyz

它使用您想要的输入打印前两列,并检查第三列(使用Scanner scan = new Scanner(System.in).useDelimiter("\n"); )作为最后一个输出。

编辑:如果行号(awk -F' ' '{ printf $1" Arg1: "$2" Arg2: "; if(length($3)){ print $3} else { print "No args found"} }' Text.txt if等)不是文本文件的一部分,请将命令行更新为以下内容:

1.