我有一个脚本,它操作数据,创建参数并将它们发送到第二个脚本。其中一个参数包含一个空格。
script1.sh:
args=()
args+=("A")
args+=("1 2")
args+=("B")
. script2.sh ${args[@]}
script2.sh:
for f in "$@"
do
echo f=$f
done
我希望将"1 2"作为单个参数,但分别接收它们:
f=A
f=1
f=2
f=B
我还尝试将script2中的输入转换为列表in=($@)并使用for f in ${in[@]
我没有给出真实的例子,因为这篇文章太长了,以至于没有人会读它。所以我会给出其他例子,我有一个bash脚本name.sh,它被编程如下-
#!/bin/bash
echo "Please Enter your name"
read name
echo "Hello $name"
sudo bash age.sh
另一个脚本(比如age.sh)是这样的-
#!/bin/bash
*echo "Hello $name"
echo "Please enter your age"
read age
echo "Thank you
我正在尝试编写一个Bash脚本,它将数字列表作为命令行参数,然后输出这些数字的和。
因此,脚本将以script.sh 1 555 22 122 66的形式运行,然后将它们全部加起来。我知道需要将它们传递给$@变量,然后可能会运行一个循环,但我不知道如何将$@的内容转换为int来计算。我试过这样做:
#!/bin/bash
for i in $@
do
$@+$@
echo "the total is `$@`"
done
我有bash脚本,它接受一组命令行参数。现在,我想移除从用户那里收到的一些参数,并将其传递给其他脚本。我怎样才能做到这一点。
remove_arts.sh
echo "Prints all args passed $*"
# Add logic to remove args value --native/-nv/--cross
my_app_args=$(command to store result in $*)
bash run_my_app.sh my_app_args
所以当我运行那个脚本时
bash remove_arts.sh --native -nv --exec
我目前有一个bash脚本。它看起来是这样的:
#!/bin/bash
case "$1" in
sendcommand)
do X with $2
exit
;;
esac
如果没有command作为$3,with作为$4,我如何将所有命令this command with spaces发送到$2?有没有类似PHP或Javascript的bash的encodeURI?