bash脚本用于更改目录并使用参数执行命令
发布时间:2020-12-16 01:09:11 所属栏目:安全 来源:网络整理
导读:我正在尝试执行以下任务: 写一个名为changedir的 shell脚本 获取目录名称,命令名称和(可选)一些其他参数. 然后该脚本将更改为指示的目录,并且 执行用提供的参数指示的命令. 这是一个例子: $sh changedir /etc ls -al 这应该更改到/ etc目录并运行命令ls -a
我正在尝试执行以下任务:
写一个名为changedir的 shell脚本 获取目录名称,命令名称和(可选)一些其他参数. 然后该脚本将更改为指示的目录,并且 执行用提供的参数指示的命令. 这是一个例子: $sh changedir /etc ls -al 这应该更改到/ etc目录并运行命令ls -al. 到目前为止我有: #!/bin/sh directory=$1; shift command=$1; shift args=$1; shift cd $directory $command 如果我像sh changeir / etc那样运行上面的ls它会更改并列出目录.但是,如果我向ls添加参数,它就不起作用.我需要做些什么来纠正它?
你似乎忽略了命令的其余参数.
如果我理解正确你需要做这样的事情: #!/bin/sh cd "$1" # change to directory specified by arg 1 shift # drop arg 1 cmd="$1" # grab command from next argument shift # drop next argument "$cmd" "$@" # expand remaining arguments,retaining original word separations 更简单,更安全的变体是: #!/bin/sh cd "$1" && shift && "$@" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |