我需要从输入构建一个关联数组。我使用了该脚本,但没有正常工作:
declare -A map
data="aa|AA"
echo $data | awk -F"|" '{ map[$1] = $2 }'
for i in "${!map[@]}"; do
echo "${map[$i]}"
done
你能为这个问题提供一个解决方案吗?
我怎么能做这样的事
if [[ $variable = name ]]
then
$variable=fname
fi
if [[ $variable = surname]]
then
$variable=sname
fi
因此,根据结果更改值,因为我有另一个基于web的脚本,它将变量设置为用户友好的名称,但我需要脚本将其更改为正确的脚本。用户可能会选择多个,所以我需要根据他们的选择进行更改。
在这个答案之后,我想在我的脚本上应用这个方法。它的基本内容是:
foo="bar"
baz="foo"
echo "${!baz}"
bar
我想提供翻译后的字符串,如下所示:
declare -A es
declare -A en
#
es["greet"]="Hola"
en["greet"]="Hello"
#
es["world"]="Mundo"
en["world"]="World"
然后,在我的脚本顶部
我想做这样的事情:
function invim () {
vim $(!!)
}
然而,当我运行它时,它是这样写的:invim:1: command not found: !!
我认为这是因为!!是非交互式脚本/函数中不可用的交互式shell扩展。在bash中,我可以使用history命令来完成这个任务,但是当我尝试使用它时,它似乎劫持了我的读行,不再允许向上箭头完成操作。
任何帮助都是非常感谢的!
我有一个把另一个脚本叫做sudo的脚本。在第二个脚本中,我希望能够在没有sudo权限的情况下运行另一个进程(所讨论的进程是brew,它不能很好地处理sudo)。
下面是有问题的代码:
scriptA.sh:
#!/bin/sh
sudo ./scriptB.sh
scriptB.sh:
#!/bin/sh
# This runs as sudo, but I need it to run as a regular user e.g. `username`
brew update
我尝试过su -c "brew update" -s /bin/sh username,但是OS
我没有给出真实的例子,因为这篇文章太长了,以至于没有人会读它。所以我会给出其他例子,我有一个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
我正在努力学习红宝石脚本。目前,我正在创建一个脚本,它应该接受用户的输入,并执行如下操作:
Go to server1 and restart mysqld
下面是我的剧本:
#!/usr/bin/ruby
puts "on which environment you want to run the script?"
srenv = STDIN.gets.chomp()
puts "#{srenv}"
puts "Hi you have chosen to run the script on #{srenv}, now is it Cluster o
我尝试在变量中构建一组参数,并将其传递给脚本,但行为与我所期望的不同。
test.sh
#!/bin/bash
for var in "$@"; do
echo "$var"
done
输入
usr@host$ ARGS="-a \"arg one\" -b \"arg two\""
usr@host$ ./test.sh $ARGS
输出
-a
"arg
one"
-b
"arg
two"
期望
-a
arg one
-b
arg two
注意,如果直接将引用的参数传递给脚本
在bash中,我们可以迭代这样的数组的索引
~$ for i in "${!test[@]}"; do echo $i; done
比如说,测试是一个数组,
~$ test=(a "b c d" e f)
所以输出看起来就像
0
1
2
3
但是,当我在zsh中做同样的操作时,我会得到一个错误:
➜ ~ for i in "${!test[@]}"; do echo $i; done
zsh: event not found: test[@]
怎么一回事?
在zsh中对索引进行迭代的正确方法是什么?
我正在编写一个Perl脚本,希望能够捕获在命令行中输入的字符串,而不必输入引号(类似于bash的"$@“功能)。我会经常使用这个命令,所以我希望这是可能的。如果我有:
if ($ARGV) {
我必须将命令行字符串放在引号中。我更喜欢这样的命令:
htmlencode some & HTML <> entities
不带引号。有没有办法在Perl中做到这一点?
您好,我正在写perl脚本,我们正在@var中进行推送(@var1,$var2)值将被存储,并在邮件中传递数组值,就像系统(“echo @var1| mail -s \"perlmailformat\”xyz.perlmonks\@example.com“)一样。;.Hence我成功地获取了邮件,但是值是相互拼接在一起的,没有任何新行.Please让我知道如何在脚本或sysntax中设置邮件格式
我试图使用Python2.7中的Popen从另一个python脚本中打开python脚本。
这两个剧本是:
child.py:一个接一个地获取5个int,等待一段时间并打印其平方。
import time
for i in range(5):
value = int(raw_input('Enter an integer: '))
time.sleep(2)
print "Its square is ", value*value
parent.py:打开child.py并将5个int写入stdin并
我有以下代码
for name in a b c d; do
for i in {01..12}; do
eval test_${name}_{i}=`some command`
done
done
我试图在后台完成作业,但它在shell脚本中不起作用,如下所示:
for name in a b c d; do
for i in {01..12}; do
eval test_${name}_{i}=`some command` &
done
done
wait
echo $test_a_01
我得到了空值