我正在尝试编写bash脚本,但仍然会遇到以下错误:
here document `cmd' unclosed
我不知道出了什么问题,请你帮忙好吗?
#!/bin/bash
USER='login'
PASS='password'
echo $USER
echo $PASS
cd /tmp
for plik in *.tar.gz
do
echo $plik
ftp -niv 192.168.12.2 << cmd
user $USER $PASS
cd /centrala/nagrania
pu
我试图用bash脚本编写一个简单的Linux make命令。以下是我到目前为止所写的:
#!/usr/bin/env bash
function make_cmd()
{
read target colon sources
for src in $sources; do
if [ $src -nt $target ]; then
while read cmd && [[ $(echo "$cmd" | grep "$(printf '\t')"*) ]]; do
echo "e
命令:
value=${value%?}
将从变量中删除最后一个字符。有没有什么逻辑原因导致它不能在脚本中工作?在我的脚本中,它没有任何效果。
if [[ $line =~ "What I want" ]]
then
if [[ $CURRENT -eq 3 ]]
then
echo "line is " $line
value=`echo "$line" | awk '{print $4}'
我正在尝试创建一个脚本,该脚本接受日志文件,其中每行包含一个名称+ >tab< +运行时(数字),如下所示:
calloffice 14
name 15
other 16
CallOffice 18
我要做的是找到与给定名称匹配的所有行,然后将运行时编号相加。
所以我一开始就把它们打印出来。但是我的脚本应该能够在logg文件中搜索关键字,并且只从这个关键字获取所有不同的运行时,现在我从所有的数字中获得运行时,而不是仅从关键字运行时。
这就是我到目前为止所做的:
#!/bin/bash
echo "What is the event?"
请考虑脚本foo.bash
#!/bin/env bash
echo "$@"
echo
for x in "${@:0:$# + 1}" ; do
echo "$x"
done
然后./foo.bash a b c给出输出
a b c
./foo.bash
a
b
c
就我所理解的文档而言,@保存位置参数,所以echo "$@"的输出对我来说是有意义的。
但是为什么for循环会打印脚本名呢?
编辑:
我在Windows上使用Git BASH,echo $BASH_VERSION生成4.4.23(1)-release
我有一个问题。我想直接从文件中解压字符串。我在bash中有一个创建另一个脚本的脚本。
#!/bin/bash
echo -n '#!/bin/bash
' > test.sh #generate header for interpreter
echo -n "echo '" >> test.sh #print echo to file
echo -n "My name is Daniel" | gzip -f >> test.sh #print encoded by gzip string into a
我正在尝试对bash脚本进行多次检查,并搜索我的公司使用的CMS。我试图实现一个函数,以便用户能够搜索某个宏调用,该函数返回包含调用的所有文件、调用宏的行和宏调用中的实际代码。由于使用for循环来格式化输出,我所拥有的似乎被搞砸了。下面是我正在编写的脚本的片段:
elif [ "$choice" = "2" ]
then
echo -e "\n What macro call are we looking for $name?"
read macrocall
for i in $(grep -inR "$m
我有一个bash语句来测试命令行参数。如果传递给脚本的参数是“干净的”,则脚本将删除所有.o文件。否则,它将生成一个程序。但是,不管传递了什么(如果有的话),脚本仍然认为参数“干净”正在被传递。
#!/bin/bash
if test "`whoami`" != "root" ; then
echo "You must be logged in as root to build (for loopback mounting)"
echo "Enter 'su' or 'sudo bash'
我正在编写一个脚本,将与bash相关的所有dotfile符号链接到主目录中。我希望脚本检查文件名是否已经存在,这样我就可以重命名/移动它们。
由于某些原因,我的if测试命令无法识别文件名中有下划线。
在测试已经存在的文件时,此脚本:
#!/bin/bash
for name in bashrc bash_profile bash_aliases
do
filename=$HOME"/."$name
if [ -e "$filename" ]; then
echo "${filename} exists"
else
e
我想让脚本可以将Windows用户目录中的用户文件复制到备份驱动器中。我很想转移除了Appdata之外的所有东西。我制作了一个非常简单的脚本,但是由于我正在传输的文件夹中有空格(例如。'/media/gage/Backup\ Drive/'),它表示不存在Drive'。
我试图将目录从文件管理器拖放/粘贴到终端上,当我将其拖到终端上时,整个路径上都会有'。有什么方法可以让输入识别文件名和它周围的'?
到目前为止,我的情况如下(我对bash脚本非常陌生)
#!/bin/bash
echo "Enter the full path to the us
我想要一个bash脚本:
对当前目录中的每个文件运行“字符串”命令。
使用grep搜索每个文件的字符串输出的特定术语。
我有以下内容,但是脚本输出没有显示任何匹配:
#!/bin/bash
echo "Searching files in directory for secrets and urls"
for file in ./*
do
echo "=====$file====="
strings ${file} | egrep -wi --color 'secret\|password\|key\|credential|\http
我有一个shell脚本的输出,如下所示
##########################################################
Creation date: 15-03-2022 / 15:03
performed by: user
Environment: E_MTE_04
Reference - Repository: TEST
-BSL Number of documents: XXX
-Syr Number of documents: XXX
-DEB Number of documents: XXX
Candidate - Repository: TES
我需要做一个密码输入bash脚本。Bash文件必须从命名管道中获取值,直到它接收到*。
例如: Bash获得1 2 5 6 7 8.5.5*(每个数字在键盘上按下后)
脚本中的变量必须是: Result =125678.5,然后我必须将它与我的Verif进行比较。密码
例如(我不知道bash语法):
while read line && input != "*"
do
passWord_input += line
if(passWord_input == verifPassword)
echo "access granted"
els