首页 > 解决方案 > 直接从命令行接收值

问题描述

我试图做的是从命令行接收值(而不是使用 read 方法并要求用户在多个步骤中输入值和/或文件名)。

./hello.sh 5 15 <file_name.txt

我听说简单地使用数组可以帮助做同样的事情,但我不能 -

  1. 避免打印

    5 15
    

    在下一行

  2. 由于正在打印 5 和 15,我希望打印字符串“abcdefgh”(file_name.txt 的内容);然而,输出停止在

    5 15
    

如果有人能指出我的代码不够用的原因,我将不胜感激,如果可能的话,请向我指出一些学习资源的方向,以拓宽我对这个概念的了解。

这是代码:

#! /usr/bin/bash

echo "$@"

我只是在测试一些东西(想在对它们做任何事情之前打印出变量)。

标签: bashcommand-line-arguments

解决方案


这行得通吗?

./hello.sh 5 15 `catfile_name.txt`

并更新hello.sh为:

#! /usr/bin/bash
shift 2
echo $@

推荐阅读