我熟悉这种语法:
cmd1 << EOF | cmd2
text
EOF
Run Code Online (Sandbox Code Playgroud)
但刚刚发现bash允许我写:
cmd1 << EOF |
text
EOF
cmd2
Run Code Online (Sandbox Code Playgroud)
(heredoc用作cmd1的输入,cmd1的输出用于cmd2).这似乎是一个非常奇怪的语法.它是便携式的吗?
我在$ PATH变量中定义了相同的路径6次.
我没有退出检查它是否有效.
如何删除重复项?
$ PATH变量如下所示:
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin
Run Code Online (Sandbox Code Playgroud)
我该怎么把它重置为
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud) 以下代码有什么问题?
name='$filename | cut -f1 -d'.''
Run Code Online (Sandbox Code Playgroud)
因为,我得到文字字符串$filename | cut -f1 -d'.',但如果我删除引号,我什么都没得到.同时打字
"test.exe" | cut -f1 -d'.'
Run Code Online (Sandbox Code Playgroud)
在shell中给我输出我想要的输出test.我已经知道$filename已经分配了正确的价值.我想要做的是为变量分配没有扩展名的文件名.
我有一个文件f1:
line1
line2
line3
line4
..
..
Run Code Online (Sandbox Code Playgroud)
我想删除另一个文件中的所有行f2:
line2
line8
..
..
Run Code Online (Sandbox Code Playgroud)
我想的东西cat和sed,这甚至还没有接近我所预期的.我怎样才能做到这一点?
如何在Windows 7命令提示符下运行.sh?当我尝试在其中运行此行时,我总是收到此错误,
app/build/build.sh
Run Code Online (Sandbox Code Playgroud)
错误,
'app' is not recognized...
Run Code Online (Sandbox Code Playgroud)
要么,
bash app/build/build.sh
Run Code Online (Sandbox Code Playgroud)
错误,
'bash' is not recognized...
Run Code Online (Sandbox Code Playgroud)
我错过了什么想法?
屏幕抓取,

例如,给定:
USCAGoleta9311734.5021-120.1287855805
Run Code Online (Sandbox Code Playgroud)
我想提取:
US
Run Code Online (Sandbox Code Playgroud) 我需要使用Bash计算字符串中char的出现次数.
在下面的示例中,当char是(例如)时t,它echo是正确的tin 的出现次数var,但是当字符是逗号或分号时,它打印出零:
var = "text,text,text,text"
num = `expr match $var [,]`
echo "$num"
Run Code Online (Sandbox Code Playgroud) 我写了两个shell脚本a.sh和b.sh. 在a.sh和b.sh中,我有一个无限的for循环,他们将一些输出打印到终端.我想编写另一个调用a.sh和b.sh的脚本,但我希望用户立即重新获得对终端的控制,而不是让脚本无限运行,我想在终端中隐藏输出.
我只是想了解shell中的以下代码行.它用于获取当前工作目录.我知道$(variable)名称返回变量名称中的值,但$(command)应该返回什么?它在执行命令后返回值吗?在这种情况下,我们可以`用来执行命令.
CWD="$(cd "$(dirname $0)"; pwd)"
Run Code Online (Sandbox Code Playgroud)
在不同版本的shell中也可以从以下代码行获取相同的输出
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
Run Code Online (Sandbox Code Playgroud)
我无法理解的含义$(cd..和$(dirname.
有人可以帮我弄清楚这个命令是如何执行的吗?
例如bash,在C/C++中众所周知的前向声明是否有类似的东西或至少类似的东西(解决方法)?
或者有这样的事情,因为例如它总是一次性执行(一行一行)?
如果没有前向声明,我该怎么做才能使我的脚本更容易阅读.它相当长,这些函数定义在开始时与全局变量混合,使我的脚本看起来很难看,难以阅读/理解)?我要求学习一些这些案例的知名/最佳实践.
例如:
# something like forward declaration
function func
# execution of the function
func
# definition of func
function func
{
echo 123
}
Run Code Online (Sandbox Code Playgroud)