我正在编写一个调用另一个脚本的非常简单的脚本,我需要将参数从当前脚本传播到我正在执行的脚本.
例如,我的脚本名称是foo.sh和调用bar.sh
foo.sh:
bar $1 $2 $3 $4
Run Code Online (Sandbox Code Playgroud)
如何在不明确指定每个参数的情况下执行此操作?
获取bash脚本的所有给定参数并将它们全部传递到脚本中的另一个命令的最简单方法是什么?例如:
命令行:
./runProgram.sh [ARGS HERE]
Run Code Online (Sandbox Code Playgroud)
脚本:
#! /bin/bash
cd bin/
java com.myserver.Program [ARGS HERE]
Run Code Online (Sandbox Code Playgroud) 我知道我可以轻松地在bash中获取这样的定位参数:
$0 要么 $1
我希望能够使用这样的标志选项来指定使用每个参数的内容:
mysql -u user -h host
Run Code Online (Sandbox Code Playgroud)
通过国旗而不是按位置获得-u param价值和-h param价值的最佳方法是什么?
下面是脚本。当我用命令运行这个时
./scriptname --deploy --uglify"
Run Code Online (Sandbox Code Playgroud)
我得到了echo "$deploy"as的结果true。但应该是uglify正确的,因为deploy=$2
#!/bin/bash
deploy=true
uglify=true
while (( $# > 1 )); do
case $1 in
--deploy) deploy="$2" echo "$deploy";;
--uglify) uglify="$2";;
*) break;
esac; shift 2
done
Run Code Online (Sandbox Code Playgroud) 我一直在研究bash和python脚本的脚本混合。bash 脚本可以接收未知的计数输入参数。例如 :
tinify.sh test1.jpg test2.jpg test3.jpg .....
Run Code Online (Sandbox Code Playgroud)
在 bash 接收到所有信息后,它将这些参数传递给tinify.py. 现在我想出了两种方法来做到这一点。
循环bash并调用python tinify.py testx.jpg
换句话说,python tinify test1.jpg那么python tinify test2.jpg,finalypython tinify test3.jpg
将所有参数传递给tinify.py然后循环python
但是有一个问题,我想过滤相同的参数,例如如果用户输入tinify.sh test1.jpg test1.jpg test1.jpg,我只想要tinify.sh test1.jpg。所以我认为用第二种方式更容易,因为 python 可能很方便。
如何将所有参数传递给 python 脚本?提前致谢!
一整天,我经常输入这样的内容:
git stash push -u -m "some phrase as a message"
我宁愿输入:
stpu some phrase as a message
所以在这个答案的帮助下,我在我的中创建了一个函数~./bashrc:
function stpu() {
git stash push -u -m "${@}"
}
Run Code Online (Sandbox Code Playgroud)
现在我可以输入stpu "some phrase as a message",这与我想要的非常接近。
如何调整我的函数,以便可以省略双引号?
我尝试了许多不同的变体(添加更多被转义的双引号、添加单引号等),但没有让它起作用。