linux Bash -在引号内传递命令行参数[closed]

3phpmpom  于 2022-11-22  发布在  Linux
关注(0)|答案(1)|浏览(174)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

7天前关闭。
Improve this question
我在我写的bash脚本中运行这一行,问题是1美元不能转换成他的值。

git bisect run sh -c 'exit `cat data | grep $1 | wc -l`'

我试着运行我的脚本:脚本108 -失败。
注意:脚本不使用命令行参数也可以工作(通过这种方式):

git bisect run sh -c 'exit $(cat data | grep 108 | wc -l)'

如何计算字符串中的$1?

bvjveswy

bvjveswy1#

将变量放在双引号内:

sh -c 'exit `cat data | grep "$1" | wc -l`'

较短:

sh -c 'exit `grep "$1" data | wc -l`'

更新的答案:

[root@server tmp]# cat data
106
107
108
108
108
109
110
[root@server tmp]# cat script.sh 
#!/bin/bash

status=$1 sh -c 'exit `grep $status data | wc -l`'
[root@server tmp]# ./script.sh 108
[root@server tmp]# echo $?
3
[root@server tmp]#

相关问题