linux - 在 bash 命令后立即读取多个参数

标签 linux bash shell parameters command

我正在制作一个 bash 脚本,我希望它只有一行,这意味着它不会与用户进行任何交互,并且参数将与命令位于同一行。一旦用户点击返回,它就会输出结果。 现在,我有一些看起来像这样的东西:

#! \bin\bash
read $1 $2
do something with $1 and $2

但是,如果我在命令行开头键入 test 时将脚本命名为“test”,则必须键入 enter 才能执行脚本的其余部分。我应该如何修改它才能在一行中运行整个程序?

最佳答案

将参数传递给脚本的标准方法不是使用 read(主动等待来自标准输入的输入),而是使用同一行的参数调用脚本:

./my_script.sh param1 param2

然后在脚本中,您可以使用 $1$2 等访问这些参数。示例(还要注意第一行 - 这描述了应该使用什么 shell运行脚本,并且应该是有效路径 - 即 /bin/bash,而不是反斜杠):

#!/bin/bash
echo "First: $1 Second: $2"

然后调用脚本:

$ ./my_script.sh Hello There
First: Hello Second: There

关于linux - 在 bash 命令后立即读取多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22665675/

相关文章:

linux - 使用 sed 在行范围之间查找和替换文件中的文本

linux - 依次运行多个bash脚本

bash - 在 URL 中使用 Bash 变量会导致 "curl: (3) Illegal characters found in URL"

python - MythTV 的 Bash 脚本需要 Python 依赖项

linux - 带有 -C 和 -W 选项的 tcpdump 文件名

linux - git push, pull, clone 没有反应

linux - 如何使用 awk 查找一行或多行中具有相同值的行并添加这些值

shell - shell中如何乘以小数点

bash - 我如何编写一个 shell 脚本程序来遍历我所有的 esql 文件,然后执行该文件以创建 exe 文件

shell - 如何在 unix shell 中使用数组?