关于我认为同样的事情的两个问题......
问题:
是否可以使用默认参数/选项运行bash脚本? ......在某种意义上,如果有人要运行脚本:
./somescript.sh
它实际上会与./somescript.sh | tee /tmp/build.txt
一起运行吗?
问题二:
是否也可以在默认情况下添加脚本?例如,如果您要运行脚本./somescript.sh
它实际上会运行
script -q -c "./somescript.sh" /tmp/build.txt | aha > /tmp/build.html
?
非常感谢任何帮助或指导。
答案 0 :(得分:0)
您需要一个包装器脚本来处理所有这样的场景。
例如,您的包装器脚本可以采用可帮助您做出决定的参数。
./wrapper_script.sh --input /tmp/build.txt --ouput /tmp/build.html
默认情况下,--input
和--output
可以设置为空白时所需的值。
答案 1 :(得分:0)
您可以使用内置$#
来了解您拥有的参数数量,并根据该参数采取行动。例如,如果你想做第二部分,你可以做类似
if [[ $# -eq 0 ]]; then
script -q -c "$0 /tmp/build.txt | aha /tmp/build.html
exit
fi
# do everything if you have at least one argument
虽然如果您的脚本/路径有空格会出现问题,那么您可能最好在script
命令而不是$0
您也可以使用exec
代替运行命令并退出,但请确保您的引号位于正确的位置:
if [[ $# -eq 0 ]]; then
exec script -q -c "$0 /tmp/build.txt | aha /tmp/build.html"
fi
# do everything when you have at least 1 argument