我写了一个shell脚本,需要接收一个参数. 脚本里面调用一个C的程序 如下 vi test.sh #!/bin/bash #start ./a.out $@ #end 运行时 ./test.sh 参数 我的目标是 这个参数格式不固定, 可能没有空格,也可能含有一个或多个空格.如果含有空格,我需要在有空格的地方加一个\转意. 主要是因为那个C程序,不能正确识别.必须要在参数里有空格的地方前加 \ 这个转意才可以. 即这种效果. ./a.out aa\ aa 请教该如何处理. 谢谢
代码如下: #游戏主程序在这儿开始. if [[ "$1" == "-h" || "$1" == "--help" ]]; then Usage elif [[ "$1" == "--version" ]]; then echo "$APP_NAME $APP_VERSION" elif [[ "$1" == "--show" ]]; then #当发现具有参数--show时,运行显示函数 &nb...
$# ----传递给程序的总的参数数目 $? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。 $* ----传递给程序的所有参数组成的字符串。 $n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ... $0 ----当前程序的名称 $@----以"参数1" "参数2" ... 形式保存所有参数 $$ ----本程序的(进程ID号)PID $! ----上一个命令的PID 本文来自...
$0 = shell名称或shell脚本名称 $1 = 第一个shell参数 ... $9 = 第九个shell参数 $# = 位置参数的个数 "$*" = "$1 $2 $3 $4 .. $n" "$@" = "$1" "$2" "$3" "$4" .. "$n" $? = 最近执行的命令的退出状态 $$ = 当前shell脚本的PID $! = 最近启动的后台作业的PID 形式 如果设置了var 如果没设置var ${var:-string} $var string ${var:+string} string null ${var:=string} $var ...
背景: 参数处理. 正文: 1.符号 $# >>>参数个数 $@ >>>参数内容 $1...$9 >>>具体参数,用shift可以解除9的限制 2.usage if [ $# -lt 1 ] then echo "usage:..." fi 3.shift 次递处理参数,每个参数都变成了$1 4.获取最后一个参数 eval echo \$$# shift `expr $# - 2` 5.getopts while getopts alhv OPTION do case OPTION in a) .. ;; l) .. ;; \?) .. ;; esac done >>>处理选项,将接收所有以-开头的...