相关疑难解决方法(0)

检查传递给Bash脚本的参数数量

如果不满足所需的参数计数,我希望我的Bash脚本能够打印错误消息.

我尝试了以下代码:

#!/bin/bash
echo Script name: $0
echo $# arguments 
if [$# -ne 1]; 
    then echo "illegal number of parameters"
fi
Run Code Online (Sandbox Code Playgroud)

由于某些未知原因,我遇到以下错误:

test: line 4: [2: command not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

bash parameter-passing command-line-arguments

663
推荐指数
6
解决办法
71万
查看次数

将命令行参数转换为Bash中的数组

如何将命令行参数转换为bash脚本数组?

我想接受这个:

./something.sh arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

并将其转换为

myArray=( arg1 arg2 arg3 )
Run Code Online (Sandbox Code Playgroud)

这样我就可以使用myArray在脚本中进一步使用了.

这个以前的SO帖子很接近,但没有讨论如何创建数组:如何在Bash中解析命令行参数?

我需要将参数转换为常规的bash脚本数组; 我意识到我可以使用其他语言(例如Python),但需要在bash中执行此操作.我想我正在寻找一个"附加"功能或类似的东西?

更新:我还想问如何检查零参数并分配一个默认数组值,并且由于下面的答案,能够使这个工作:

if [ "$#" -eq 0 ]; then
  myArray=( defaultarg1 defaultarg2 )
else
  myArray=( "$@" )
fi
Run Code Online (Sandbox Code Playgroud)

arrays bash shell

139
推荐指数
5
解决办法
14万
查看次数