到目前为止,“ls
”工作正常,我会获取目录中的所有文件。但是现在我希望当我执行./myscript ls -l /somedir
时获取与我在终端输入ls -l /somedir
时所获得的结果相同的结果。
有什么办法可以吗? 到目前为止,这是我的代码..
#!/bin/sh
clear
echo ""
read -p "type something : " file
echo""
IFS=:
for dir in $PATH ; do
if [ -x "$dir/$file" ]
then
echo ""
exec "$dir/$file"
fi
done
答案 0 :(得分:2)
据我所知(由于问题没有明确提出,需要进行大量的猜测),您的问题是命令行参数不会通过。
使用"$@"
访问它们:
#!/bin/bash
prog=$1; shift
IFS=: read -r -a paths <<<"$PATH"
for path in "${paths[@]}"; do
[[ -x $path/$prog ]] && "$path/$prog" "$@"
done
然后,运行yourscript ls -l /foo
实际上会将-l
和/foo
传递给他们创建的ls
个实例。