到目前为止,“ 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
据我了解(这涉及大量的猜测工作,因为问题尚未明确提出),您的问题是命令行参数未通过传递。
使用"$@"
访问它们:
#!/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
它们创建的任何实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句