加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

修改参数传递给脚本(Bash)

发布时间:2020-12-16 01:16:43 所属栏目:安全 来源:网络整理
导读:我一直在谷歌上看了很长一段时间,找不到任何符合我需要/想做的东西. 我的目标是编写一个带有两个参数的脚本.它将搜索第一个参数(这是一个列表)并检测第二个参数是否已经在其中.例如: list = / bin / foo:/ bin / random:random 添加到列表:/ bin / fooba
我一直在谷歌上看了很长一段时间,找不到任何符合我需要/想做的东西.

我的目标是编写一个带有两个参数的脚本.它将搜索第一个参数(这是一个列表)并检测第二个参数是否已经在其中.例如:

list = / bin / foo:/ bin / random:random

添加到列表:/ bin / foobar

调用脚本将产生/ bin / foo:/ bin / random:random:/ bin / foobar的结果.

如果要添加到列表中的部件已经在列表中,那么原件的任何内容都不会更改.

我有一切工作,直到我想要修改我传递的参数.

...
if [ $RUN = 1 ]; then
    echo $1
else
    $1="$NEWLIST"
fi
exit 0

然而,这产生了错误.它说找不到命令,并给我一个$1 =“$NEWLIST”的行号.我在这做错了什么?如何修改$1?谢谢!

编辑:

$PATH=/opt/bin:$PATH
$./scrip.sh PATH /user/opt/bin
$/opt/bin:/user/opt/bin

这是我想要的脚本结果.

adymitruk已经说过了,但你为什么要分配一个参数.这不是诀窍吗?
if `echo :$1: | grep ":$2:" 1>/dev/null 2>&1`
then
  echo $1
else
  echo $1:$2
fi

也许这个:

list="1:2:3:4"
list=`./script $list 5`;echo $list

大编辑:

使用此脚本(例如,名为listadd):

if ! `echo :${!1}: | grep ":$2:" 1>/dev/null 2>&1`
then
  export $1=${!1}:$2
fi

并从你的shell中获取它.结果如下(我希望这是wsa的意图):

lorenzo@enzo:~$list=1:2:3:4
lorenzo@enzo:~$source listadd list 3
lorenzo@enzo:~$echo $list
1:2:3:4
lorenzo@enzo:~$source listadd list 5
lorenzo@enzo:~$echo $list
1:2:3:4:5
lorenzo@enzo:~$list2=a:b:c
lorenzo@enzo:~$source listadd list2 a
lorenzo@enzo:~$echo $list2
a:b:c
lorenzo@enzo:~$source listadd list2 d
lorenzo@enzo:~$echo $list2
a:b:c:d

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读