这个bash脚本的目的是什么? (它是较大脚本的一部分。)
if [ $# -gt 0 ]
then
case $1 in
-*) ;;
*) exec $* ;;
esac
fi
相关问题:
https://stackoverflow.com/questions/2046762/problem-with-metamap-inappropriate-ioctl-for-device
答案 0 :(得分:7)
英文,逐行:
if the number of arguments is greater than 0
then
if the first argument...
starts with '-', do nothing
else, "exec" the arguments (run the entire set of arguments as a command replacing this process, not as a child process)
(end of case)
(end of if)
答案 1 :(得分:1)
不知道任何bash脚本我会说这个
-
开头,则无效答案 2 :(得分:1)
case ... esac
部分是switch
声明。如果$1
与-*
匹配(即如果它以-
开头),则会执行第一个案例 - 并且不执行任何操作。否则(如果$1
与*
匹配,这取决于shell设置可能会排除以.
开头的内容{}}} {/ p>}。
在那周围有一个if语句,确保只有在实际存在任何要检查的参数时才执行开关(参数计数大于零)。
答案 3 :(得分:0)
传入第一个参数并使用其余参数I.E。执行它:
./script.sh ls dir1 dir2
就好像你输入了
一样ls dir1 dir2
答案 4 :(得分:0)
如果此脚本在命令行中放置的第一个参数是文件而不是选项,则尝试将其作为可执行文件或脚本运行。