gpt4 book ai didi

linux - shell 脚本 :How to pass script's command-line arguments through to commands that it invokes?

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:54 25 4
gpt4 key购买 nike

到目前为止,“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 他们创造。

关于linux - shell 脚本 :How to pass script's command-line arguments through to commands that it invokes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33640804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com