什么是export?
有什么区别:
export name=value
Run Code Online (Sandbox Code Playgroud)
和
name=value
Run Code Online (Sandbox Code Playgroud) 我有两个shell脚本,a.sh和b.sh.
如何b.sh从shell脚本中调用a.sh?
我对bash脚本感到困惑.
我有以下代码:
function grep_search() {
magic_way_to_define_magic_variable_$1=`ls | tail -1`
echo $magic_variable_$1
}
Run Code Online (Sandbox Code Playgroud)
我希望能够创建一个包含命令的第一个参数并带有例如最后一行的值的变量名ls.
所以说明我想要的东西:
$ ls | tail -1
stack-overflow.txt
$ grep_search() open_box
stack-overflow.txt
Run Code Online (Sandbox Code Playgroud)
那么,我应该如何定义/声明$magic_way_to_define_magic_variable_$1以及如何在脚本中调用它?
我已经试过eval,${...},\$${...},但我仍然感到困惑.
我有一个理论问题:
1)如何将变量传递给getline()系统?
awk 'BEGIN{var="ls"; var | getline var; system("echo $var")}'
Run Code Online (Sandbox Code Playgroud)
2)如何为输出系统("ls")分配变量并在awk中打印结果?
awk 'BEGIN{var="system("ls")"; print '$var'}'
Run Code Online (Sandbox Code Playgroud)
3)你能在系统中分配一个变量(var ="ls")并在awk中打印结果吗?
awk 'BEGIN{system(var="ls"); print "'"$var"'"}'
Run Code Online (Sandbox Code Playgroud)
感谢您的信息.
编辑:
torek:谢谢你的回复.
我理解在第一个例子中,你可以这样做:
awk 'BEGIN { while ("ls -l" | getline var) system("echo " var );}'
Run Code Online (Sandbox Code Playgroud)
对于此应用程序,您不能从system()分配变量输出?如下例所示:
awk 'BEGIN {var="ls -l"; system(var); print var}'
Run Code Online (Sandbox Code Playgroud) 我正在尝试一些非常简单的事情:
PEOPLE=(
"nick"
"bob"
)
export PEOPLE="$(IFS=, ; echo "${PEOPLE[*]}")"
echo "$PEOPLE" # prints 'nick,bob'
./process-people.sh
Run Code Online (Sandbox Code Playgroud)
出于某种原因,process-people.sh没有看到$PEOPLE. 就像,如果 I echo "$PEOPLE"from inside process-people.sh,它会打印一个空行。
据我了解,通过调用创建的子进程./process-people.sh应该继承父进程的所有环境变量,包括$PEOPLE. 然而,我在 Bash 3.2.57(1)-release 和 4.2.46(2)-release 上都试过这个,但它不起作用。
这里发生了什么?
在 bash 调用中,我想将一些常量参数放入一个变量中,并且不要在管道内丢失 StdOut 和 StdErr。
我有电话
git fetch origin "ref1:ref1" "ref2:ref2" "ref3:ref3"
Run Code Online (Sandbox Code Playgroud)
让我们把这些常量值放到一个变量中
fetch_refspec="'ref1:ref1' 'ref2:ref2' 'ref3:ref3'"
Run Code Online (Sandbox Code Playgroud)
我看到了使用管道的解决方案,但我害怕以某种方式丢失输出。而且我不想使用文件进行缓存(tee命令)。
echo $refs | xargs git origin
Run Code Online (Sandbox Code Playgroud)
我不明白如何巧妙地做这件事。或者如果可能的话。
后来我想把输出放到一个变量中并分析它。