我有一个非常简单的shell脚本名称test.sh:[mylinux~]$cattest.shecho"a"echo"${0}"但是,当我source和sh时,结果完全不同:[mylinux~]$shtest.shatest.sh[mylinux~]$sourcetest.sharray:x,y0,x1,x我看不懂sourcetest.sh的结果,而且,我把test.sh改名后,结果也变了:[mylinux~]$mvtest.sha.sh[mylinux~]$sourcea.sha-bash如何理解这种现象?顺便说一句,第二个奇怪的结果只存在于我的一个远程linuxsession中,在
我有一个非常简单的shell脚本名称test.sh:[mylinux~]$cattest.shecho"a"echo"${0}"但是,当我source和sh时,结果完全不同:[mylinux~]$shtest.shatest.sh[mylinux~]$sourcetest.sharray:x,y0,x1,x我看不懂sourcetest.sh的结果,而且,我把test.sh改名后,结果也变了:[mylinux~]$mvtest.sha.sh[mylinux~]$sourcea.sha-bash如何理解这种现象?顺便说一句,第二个奇怪的结果只存在于我的一个远程linuxsession中,在
/opt/dir/ABC/中有多个名为allfile_123-abcallfile_123-defallfile_123-ghiallfile_123-xxx的文件。我需要将文件命名为new_name-abc.pgpnew_name-def.pgpnew_name-ghi.pgpnew_name-xxx.pgp然后移动到/usr/tst/outputforfilein/opt/dir/ABC/allfile_123*;domv$file/usr/tst/output/"$file.pgp";renameallfile_123new_name/usr/tst/output/*.pgp;d
/opt/dir/ABC/中有多个名为allfile_123-abcallfile_123-defallfile_123-ghiallfile_123-xxx的文件。我需要将文件命名为new_name-abc.pgpnew_name-def.pgpnew_name-ghi.pgpnew_name-xxx.pgp然后移动到/usr/tst/outputforfilein/opt/dir/ABC/allfile_123*;domv$file/usr/tst/output/"$file.pgp";renameallfile_123new_name/usr/tst/output/*.pgp;d
在下面的shell脚本中,我想在后台并行运行2个命令以加快进程,等待它们完成并在之后继续运行更多命令。由于我在两个循环中使用相同的变量名(DATASERVERNAME),这些变量是否会在后台相互干扰?我是否应该在每个循环中使用不同的变量名称,例如DATASERVERNAME_SYBASE、DATASERVERNAME_ORACLE?#!/bin/bashwhilereadDATASERVERNAMEdosomecommandsheredone 最佳答案 你的脚本是安全的,你可以通过一个小实验来揭示:#!/bin/sh-euechoA
在下面的shell脚本中,我想在后台并行运行2个命令以加快进程,等待它们完成并在之后继续运行更多命令。由于我在两个循环中使用相同的变量名(DATASERVERNAME),这些变量是否会在后台相互干扰?我是否应该在每个循环中使用不同的变量名称,例如DATASERVERNAME_SYBASE、DATASERVERNAME_ORACLE?#!/bin/bashwhilereadDATASERVERNAMEdosomecommandsheredone 最佳答案 你的脚本是安全的,你可以通过一个小实验来揭示:#!/bin/sh-euechoA
我在archlinux上,通过SSH访问服务器上的帐户。我已经运行了一个包含递归的bash脚本,该脚本导致“没有这样的文件或目录”的无限循环,尽管有任何中断命令ctrlC等,它仍然继续,它是完全不可中断的。这最终会导致无穷无尽的bash:fork:Nochildprocesses。发生这种情况时我无法执行任何命令,当它因“资源暂时不可用”而停止时,我无法执行任何命令来终止脚本,因为“bash:fork:没有子进程”再次启动。我不知道该怎么做,有什么帮助吗?psdoesn'twork 最佳答案 看起来你造成了forkbomb.你可以尝
我在archlinux上,通过SSH访问服务器上的帐户。我已经运行了一个包含递归的bash脚本,该脚本导致“没有这样的文件或目录”的无限循环,尽管有任何中断命令ctrlC等,它仍然继续,它是完全不可中断的。这最终会导致无穷无尽的bash:fork:Nochildprocesses。发生这种情况时我无法执行任何命令,当它因“资源暂时不可用”而停止时,我无法执行任何命令来终止脚本,因为“bash:fork:没有子进程”再次启动。我不知道该怎么做,有什么帮助吗?psdoesn'twork 最佳答案 看起来你造成了forkbomb.你可以尝
我正在尝试重定向和管道,但不理解某些行为。我有这段代码可以在stderr和stdout上分别生成一行:(echostdout;echostderr1>&2)似乎可以正常工作,(尝试>/devnull和2>/dev/null)。但这三个命令的行为让我感到困惑:(echostdout;echostderr1>&2)>>(wc-l)stderr1(echostdout;echostderr1>&2)2>>(wc-l)stdout1(echostdout;echostderr1>&2)>>(wc-l)2>>(wc-l)2(empty)为什么最后一个命令会合并两个流?或者还有什么事情让我的大脑崩
我正在尝试重定向和管道,但不理解某些行为。我有这段代码可以在stderr和stdout上分别生成一行:(echostdout;echostderr1>&2)似乎可以正常工作,(尝试>/devnull和2>/dev/null)。但这三个命令的行为让我感到困惑:(echostdout;echostderr1>&2)>>(wc-l)stderr1(echostdout;echostderr1>&2)2>>(wc-l)stdout1(echostdout;echostderr1>&2)>>(wc-l)2>>(wc-l)2(empty)为什么最后一个命令会合并两个流?或者还有什么事情让我的大脑崩