Bash:传递命令行参数

2018-02-03 10:23:39来源:https://www.felix021.com/blog/read.php?2180作者:Blog of Felix021人点击

分享

不知道为什么这些年写脚本一直没有解决这个小需求:把命令行参数传递给脚本中的某个命令继续执行


例如我想写一个 colored-echo 命令:


引用


$vi colored-echo


#!/bin/bash


color=$1


shift


echo -e "/x1b[$color"


echo $1 $2 $3 $4 $5


echo -e "/x1b[0m"


但参数的数量是可变的,另一种实现是


引用


cmd=echo


for ((i=1; i<=$#; i++))


do


cmd="cmd ${@:i:1}"


done


但个实现也很奇怪,如果某个参数里面出现了引号或者空格,会因为bash奇葩的转义逻辑导致跟预期不一致。


可能因为痛感不强烈,所以拖了几年也没真正花心思去解决它,今天搜了一会,总算找到靠谱的解决方案了,而且超级简单:


引用


echo "$@"


转载请注明出自,如是转载文则注明原出处,谢谢:)



RSS订阅地址:
http://www.felix021.com/blog/feed.php


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台