Bash 我需要知道如何从命令行的参数中访问所需的字符

Bash 我需要知道如何从命令行的参数中访问所需的字符,bash,Bash,我需要知道如何从命令行的参数访问我想要的任何字符。类似于bash中的cut命令,但来自命令行 例如,如果我以dd/mm/yyyy格式写入日期,并且我只需要字符dd、mm和yyyy。我该怎么做 我已经尝试过read命令,但我不知道如何很好地使用它。Bash提供了几种方法来提取子字符串(从命令行输入或变量) 按固定位置提取 拆分提取(适用于2019年1月2日等情况) 您可能希望为读取设置IFS,尽管问题并不完全清楚 IFS=/ read dd mm yyyy <<< "31/12/

我需要知道如何从命令行的参数访问我想要的任何字符。类似于bash中的cut命令,但来自命令行

例如,如果我以
dd/mm/yyyy
格式写入日期,并且我只需要字符
dd
mm
yyyy
。我该怎么做


我已经尝试过read命令,但我不知道如何很好地使用它。

Bash提供了几种方法来提取子字符串(从命令行输入或变量)

按固定位置提取 拆分提取(适用于2019年1月2日等情况)
您可能希望为
读取
设置
IFS
,尽管问题并不完全清楚

IFS=/ read dd mm yyyy <<< "31/12/2019"
echo "$yyyy-$mm-$dd"  # -> 2019-12-31

IFS=/read dd-mm-yyyy谢谢大家,你们的答案非常有用!我已经解决了我的问题,很抱歉没有早点回答。是我干的

date=$1
day=$2

dd=$(echo $date | awk -F / '{print $1}')
mm=$(echo $date | awk -F / '{print $2}')
yyyy=$(echo $date | awk -F / '{print $3}') 

请提供更多细节!输入和输出应该是什么样子?同时展示你已经尝试过的东西。你可以回答这个问题。顺便说一句,欢迎来到堆栈溢出!请使用并阅读。如果您想单独访问
dd-mm-yyyy
,请将输入读取为字符串,并使用命令替换和
tr
,例如
printf“输入dd/mm/yyyy:”;read-r-datestr;arr=($(echo$datestr | tr/'')
现在您可以
echo${arr[@]}
。您可以使用“bash参数替换”,这里的示例您能给我们更多的示例说明您正在尝试做什么吗?它可能会帮助我们。
IFS=/ read dd mm yyyy <<< "31/12/2019"
echo "$yyyy-$mm-$dd"  # -> 2019-12-31
date=$1
day=$2

dd=$(echo $date | awk -F / '{print $1}')
mm=$(echo $date | awk -F / '{print $2}')
yyyy=$(echo $date | awk -F / '{print $3}')