我正在尝试完成以下任务:编写一个名为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 changedir /etc ls
,它会更改并列出该目录。但是,如果我为 ls
添加参数,它不起作用。我需要做什么才能纠正它?
"$@"
更好,因为它保留了传递的参数。这就是我的意思,但不是我写下的! - CB Bailey