我试图调用 edbplus 从命令行linux shell脚本中计数一个表,但是我一直在从edbplus检索响应号,而其他输出都在同一个响应中,我试图从其中只检索一个整数响应号。
#!/bin/sh
COUNT=`./edbplus.sh -silent user/password@localhost:5444/mydb<<-EOF
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
SELECT COUNT(ID) FROM MYTABLE
EXIT;
EOF`
echo $COUNT
响应:
$ echo
我对bash的看法是:
bash --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
如果我做原型功能
#!/bin/bash
function f()
{
echo "hello" $1
}
f "world"
我得到了Syntax error: "(" unexpected
为什么会这样呢?
商店的产出如下:
autocd off
cdable_vars off
cdspell off
checkhash
在bash脚本中有一个select语句,返回DB中的最新日期。我运行了4次这个查询,所以我只想定义它一次,并将文本转换成一个变量。
#!/bin/bash
linux commands;
database_date=$(sqlplus -s/nolog $USER/$USER@BRMDPP <<END
set pagesize 0 feedback off verify off heading off echo off;
SELECT ...
exit;
END
当变量未设置时,我一直在使用间接展开,并依赖于空字符串的结果:
$ $SHELL --version | head -1
GNU bash, version 4.4.23(1)-release (x86_64-unknown-linux-gnu)
$ unset var
$ echo "${!var}"
$
但是在一个新的Linux盒上,invalid indirect expansion失败了:
$ $SHELL --version | head -1
GNU bash, version 5.0.7(1)-release (x86_64-pc-linux-gnu)
$ un
我已经创建了一个bash脚本,带有一些后期安装命令,用于发行版的深度。现在我的问题是,我真的不知道如何解决,因为我是一个使用bash脚本的新手,那就是在选择和执行命令之后,有一个命令返回到脚本的主菜单。但是当我在主菜单上时,脚本无法执行另一个命令。如果我选择了一个选项,并试图执行,没有追加。脚本使用对话框的最小接口。有人能帮我弄清楚问题出在哪里吗?
这是密码
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Questo script deve essere eseguito come root"
exit 1
else
su
我在我的linux机器上安装了ORACLE 11版本。我正在尝试使用下面的导出数据。除了在任何一列中都有双引号(“)作为数据的表外,它对所有表都很好。
set echo off
set feedback off
set linesize 30000
set recsep off
set trimspool off
set verify off
set pagesize off
spool "/home/rsau12/file.csv";
SELECT '"'||COLUMN_1||'"'||','
'
如何在批处理文件中回显(创建)另一个在windows中运行的批处理文件,在运行后启动并删除它?使用一个批处理脚本尝试WSl 2安装程序
我试过这个,
@echo off
:: BatchGotAdmin
// asking one time admin priv code here
@echo off
title wsl setup Part 1 !
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enab
我有两个变量$a和$b
是否有shell脚本命令将最小变量的值赋给$c
i.e
$c = min($a,$b)
以及一些可以在所有平台上运行的命令: hp-ux、aix、linux_x_64
提前感谢
编辑:默认shell为ksh
在我尝试运行的脚本下面
rm abc.log
near_dr=`sqlplus -s tcs384160/tcs#1234 <<\EOF
set pagesize 0 feedback off verify off heading off echo off
select max(sequence#) from v$archived_log where
我在ubuntu中安装了memcached,我想在系统启动时将memcache设置为自动启动,但是我出了问题!我在/etc/init.d/中创建了一个名为memcached的shell脚本,下面是我的代码:
#! /bin/sh
#
# processname: memcached
# config: /etc/sysconfig/memcached
# Source function library - for other linux
#. /etc/rc.d/init.d/functions
# Source function library - for suse linux
#loa
我有一个mysql数据库,其中的表与我收到的csv文件具有相同的列名。我曾经使用windows批处理文件上传到mysql中。
@echo off
echo TRUNCATE TABLE `alarms`; > importalarm.sql
echo Creating list of MySQL import commands
for %%s in (*.csv) do
echo LOAD DATA LOCAL INFILE '%%s' INTO TABLE `alarms`
FIELDS TERMINATED BY ',' ENCL
我编写了以下Windows批处理脚本,该脚本将给定的文件复制到Nucleo STM32虚拟驱动器:
@echo off
for /f %%D in ('%SystemRoot%\System32\wbem\WMIC.exe volume get DriveLetter^, Label ^| find "NODE_F446RE"') do set nucleo_drive=%%D
rem echo Nucleo drive: %nucleo_drive%
IF EXIST %nucleo_drive%\DETAILS.TXT (
IF EXIST %1 (
我有基于Linux服务器的日志文件,我在Windows操作系统上工作。我正在使用Filezilla登录Linux服务器,并通过打开日志文件来搜索特定的文本或字符串。我想在Windows中使用批处理自动化这个过程,我尝试使用下面的方法;
@echo off
cls
set /p string="Enter the string: "
echo open xx.xx.xx.xx 21> ftpc.dat
echo xxxxxxxx>> ftpc.dat
echo xxxxxxxx>> ftpc.dat
echo bin >> ftpc.da
我有一个shell脚本,在其中我使用sqlplus命令从数据库(安装在Linux上)获取数据。同样的脚本在Linux环境下运行良好。当我通过使用下面的批处理文件在窗口环境上执行脚本时。
set ORACLE_TERM=xterm
set ORACLE_BASE=/home/pwcadm/app/pwcadm
set ORACLE_HOME=/home/pwcadm/app/pwcadm/product/11.2.0/client_1
set ORACLE_HOSTNAME=kyora02.kymab.local
set ORACLE_SID=orcl
set ORA_NLS11=$ORACLE
在我的日常工作中,我使用TortoiseGit,并且我正在尝试编写一个结帐后钩子。我更喜欢在windows环境中工作,所以钩子文件所做的唯一事情就是调用标准的windows.bat文件:
#!/bin/sh
echo "The Git post-checkout Linux Shell-file has now started to execute"
cmd.exe "/c post-checkout.bat"
echo "The Git post-checkout Linux Shell-file has now finished executing&
我这里有windows中的批处理文件,我想将同样的文件应用于linux。我可以请您帮助在linux中运行它吗?下面是windows的批处理文件:
@echo off
TITLE Upload Masterlist
set /p answer=Do you want continue? [Y/N]:
if %answer%==Y goto G
if %answer%==y goto G
if %answer%==N goto EndoF
if %answer%==n goto EndoF
:EndoF
goto:eof
:G
cls
set MYSQL_HOME=mysql>C:
我需要知道Bash中的这个批处理脚本:
@echo off
set /p name= Name?
findstr /m "%name%" ndatabase.txt
if %errorlevel%==0 (
cls
echo The name is found in the database!
pause >nul
exit
)
cls
echo.
echo Name not found in database.
pause >nul
exit
我是Linux内核的新手,所以先从一个简单的发行版-- Ubuntu 12.10开始。我的问题是我真的不太了解Bash脚
我想在批处理文件中嵌套一个for循环来删除回车。我试过了,就像你在下面看到的那样,但它不起作用。
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (Listfile.txt) do (
set /a N+=1
set v!N!=%%a
)
for /l %%i in (1, 1, %N%) do (
echo !v%%i!
for /r "tokens=* delims=" %%i in (windows.cpp) do (
我想将CSV文件的文件名插入到CSV文件的最后一列。
我找到了一个成功的windows批处理文件,但我正在寻找一个linux bash脚本。
我已经附上了windows批处理文件:
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%c in ('dir/b/a-d *.csv') do (
set FN=%%~Nc
set /a N=0
for /f "tokens=* delims= " %%a in (%%c) do (
set
我正试图在文件夹中对裁剪图像进行批处理。每当我尝试做这个循环
for image in '/home/donald/Desktop/Im'*.jpg; do
convert "$image" -gravity center -crop 95X95% "${image%.jpg}"-modified.jpg
done
我最后得到了一个错误:
convert.im6: unable to open image `/home/donald/Desktop/Im*.jpg': No such file or directory @ e
我有一个linux脚本,当从命令行运行时运行得很好,但是当计划通过crontab运行时,它并没有提供所需的结果。
脚本非常简单,它通过检查它的pid是否使用pidof命令来检查mysql代理是否正在运行。如果被发现为off,它将尝试启动代理。
# Check if mysql proxy is off
# if found off, attempt to start it
if pidof mysql-proxy
then
echo "Proxy running."
else
echo "Proxy off ... attempting to res
这是我第一次使用Stack Overflow,所以请宽大处理这个问题。我一直在尝试使用batch进行编程,并使用DOSbox在我的linux机器上运行它们。
下面是我一直使用的代码:
@echo off
set a=3
set b=4
set c=%a%+%b%
echo %c%
set d=%c%+1
echo %d%
它的输出是:
3+4
3+4+1
我如何将这两个变量相加,而不是回显该字符串?
我在linux机器上执行批处理脚本时遇到问题。
场景:我有一台安装了server2008的windows机器,我需要自动执行一些从linux机器上执行的windows任务。我已经在windows虚拟机上安装了cygwin软件,并创建了一个从cygwin终端运行良好的批处理脚本。即cd ~/;./script.bat
问题:当我使用ssh从linux机器上执行相同的脚本时,它似乎工作正常,并且打印脚本成功执行,但是当我检查从windows执行的任务时,它什么也没做。
cat script.bat
@echo off
set sourcePasswd=%1
set destinationPass
尝试使用windows批处理文件,在下面的代码中,我通过在www中搜索找到。
@ECHO OFF
REM Call this with two arguments, and it will add them.
SET a=%1+%2
IF %ERRORLEVEL%==0 (goto errors-0) ELSE (goto errors-1)
REM Instead of using goto with the variable, this uses an IF-ELSE structure
:errors-0
REM This is if it was successful
ECHO %a%
在批处理脚本中,我需要找到特定可执行文件的位置(路径)。我使用where.exe来实现它,它的工作原理就像一种魅力。
@ECHO OFF
:: save the result of the command 'where.exe epstopdf' into the variable progpath
for /f "delims=" %%a in ('where.exe epstopdf') do @set progpath="%%a"
:: echo result
echo %progpath%
现在我遇到了问题,我安装了,因为
我试图将大型数据集(200k+行)假脱机为csv格式,并且不需要引用列。这可以通过的导出设置来实现,但我试图通过SQL脚本来实现这一点。生成的csv文件然后由另一个应用程序读取。为了演示这一点,我运行以下脚本。
set ECHO off
set FEEDBACK off
set LINESIZE 60
set RECSEP off
set TRIMSPOOL on
set VERIFY off
set PAGESIZE 0
set SQLFORMAT csv
spool y:\aa.csv
SELECT * FROM PRODUCT_COMPONENT_VERSIO
我尝试使用批处理脚本查找目录中存在或不存在的特定文件
@echo off
setlocal
CD C:\MM-cmd\INPUT
for /r %%i in (*.csv) do set var=%%i(
echo %var%
)
它没有得到文件名。
它是这样打印的:
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
有人能帮帮我吗?!
我有一个output.txt文件,它包含以下内容:
Windows 6543765432
Linux 4534653463
MacOS 3564325
Ubuntu 8235646255
我想要创建一个批处理脚本,它搜索output.txt中的所有数值,并将它们除以1024 (结果中只需要整数部分,而不是十进制),这样KB中的内存可以转换为MB (克服了批处理数学的2GB限制),但没有输出。
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=1,2 del