将Bash与stdin中的脚本文本和命令行中的选项一起使用

时间:2016-07-26 03:08:22

标签: bash sh

我想使用/ bin / bash(可能是/ bin / sh),并将选项-f传递给脚本并由脚本处理。 确切地说,

while getopts f OPT
do
  case $OPT in
    "f" ) readonly FLG_F="TRUE" 
   esac
done

if [ $FLG_F ]; then
  rm -rf $KIBRARY_DIR
fi

当这些行位于文件http://hoge.com/hoge.sh中时,

我可以这样做,例如,

wget http://hoge.com/hoge.sh
/bin/bash hoge.sh -f

但不是

/bin/bash -f hoge.sh

我知道原因,但我想这样做,

wget -O - http://hoge.com/hoge.sh | /bin/bash

使用-f选项为hoge.sh而不是/ bin / bash

有没有什么好方法可以做到这一点?

/bin/bash <(wget -O - http://hoge.com/hoge.sh) -f

的工作。但这只适用于bash用户,对吗?

1 个答案:

答案 0 :(得分:3)

使用bash你可以做到

wget -O - http://hoge.com/hoge.sh | /bin/bash -s -- -f
从标准输入读取与-s命令一样的

。此选项也允许设置位置参数。 它也应该与其他POSIX shell一起使用。