【发布时间】:2021-11-16 22:45:06
【问题描述】:
我正在处理的小脚本有问题,请您解释为什么这不起作用:
#!/bin/bash
var1=$( linux command to list ldap users | grep "user: $1")
echo $var1
所以,当我部署我的脚本 ( ./mycript.sh $michael ) 时,它应该使用该值而不是 $1 并通过 echo $variable1 提供输出?在我的情况下,这是行不通的。
你能解释一下我应该如何在变量中配置位置参数吗?
我尝试了这个解决方案,但没有帮助:
#!/bin/bash
var1=$( linux command to list ldap users | grep user: $1)
echo $var1
【问题讨论】:
-
好吧,
var1不是variable1。In my case that is not working.调试脚本。使用set -x运行脚本并确认您的假设。$michael ), it should use that value instead of $1什么值?michael变量是否设置在父进程中?I tried the this solution, but that did not help:但结果是什么?你有没有收到来自grep的消息说没有这样的文件?很可能,$michael变量为空。 -
感谢您的快速回复,这是一个错字,它是 var1
-
调用shell中
$michael的值是多少?也许你的意思是./myscript.sh michael -
你们拯救了我的一天!我使用 ./myscript.sh $michael 而不是使用 ./myscript.sh michael 这就是没有输出的原因。我之前多次使用过这个命令,但今天我卡住了,我认为问题出在脚本上,而不是实际输入,因此 $michael 不存在,但 michael 存在并且它现在正在工作!我可以在没有这个想法的情况下进一步学习,非常感谢!
标签: linux bash variables scripting positional-parameter