concat_params() { # 获取传入的参数个数 num_params=$# # 判断参数个数是否大于等于1 if [ $num_params -ge 1 ]; then # 使用循环遍历参数,并拼接在一起 concat_str="$1" for ((i=2; i<=$num_params; i++)); do concat_str+="%20${!i}" done # 打印拼接后的字符串 echo "$concat_str" else echo "没有传入参数" fi } function bing() { # 获取拼接后的搜索参数 search_query=$(concat_params "$@") # echo $search_query ## 如果是windows系统,则使用start,否则使用open,后面的参数可以有多个空格 if [[ "$OSTYPE" == "msys"* ]]; then start "https://www.bing.com/search?q=$search_query" else open "https://www.bing.com/search?q=$search_query" fi } bing bat cat 对比