如何将redhat Linux中shell脚本中的Bash变量设置为只有一行的文件内容,然后在其后面添加一些文本。
例如:
echo "Version 1.2.3.4" > $TMPDIR/devver
env=dev
export ${env}_result="`cat $TMPDIR/${env}ver` (No response - version is from cache)"
echo $dev_result
我希望输出为:
Version 1.2.3.4 (No response - version is from cache)
取而代之的是
我在我的Linux中同时运行多个命令。
echo "Line of text 1" && echo "Line of text 2" && complexthing | xargs printf "complexspecifier"
我想将所有输出重定向到file1。我知道我可以在每个单独的命令之后添加>file1,但这似乎很大。我该怎么做?
我正在编写一个脚本,该脚本将分解usb驱动器,并使用加密的持久数据安装Kali linux。
#! /bin/bash
cd ~/Documents/Other/ISOs/Kali
echo "/dev/sdx x=?"
read x
echo "how many passes to wipe? 1 will be sufficient."
read n
echo "sd$x will be wiped $n times."
read -p "do you want to continue? [y/N] " -n 1 -r
ec
我编写了一个脚本,它列出了当前目录和子目录中的每个文件,并从文件的头部和尾部(带有偏移量)给出了md5sum,并将其保存到一个.txt文件中。
我是用管道做的,所以我不能重定向一个变量,这个变量以前已经由userinput声明过了。所以我把脚本改成了for循环。现在的问题:它没有列出所有的文件,但只列出了一个。而且它似乎是随机做的。为什么它不像以前那样列出所有的文件?
我甚至尝试了**.*和./*等等。我使用的是macbookpro mac os 10.13.6。我刚安装了一些东西,所以我也可以使用linux命令,例如像tree等。
如有任何帮助,我们不胜感激!我不知道我还能做什么。
变量未被
现在,我正在处理一个批处理文件,在某一天的某个时间,它将自动关闭用户的PC。到目前为止,我已经做到了这一点。现在,我正在编写一个独立的版本,它在启动时启动,并一直运行到达到某些值为止。
:Loop
for /f "tokens=1-3 delims=:,. " %%A in ("%time%") do (
set "Hour=%%A"
set "Min=%%B"
)
set /a Hour = Hour %% 12
if %Hour%==0 set "Hour=12"
set "Allm=%Hour%:
当我处理多部分消息时,我遇到了一些奇怪的行为,评估多部分消息体的内容长度。
长话短说。它可以分解成新的线路被管道。
$ a="x"; b="y"
$ echo -e "${a}" | wc -c
2 # strange, shouldn't it be just a single byte?
$ echo -e "${b}" | wc -c
2 # at this point one could guess the sum is **4**, but its not
$ echo -e "${a}${b}"
我试图为变量free_memlist创建索引数组,但它只打印了第一个。但是在循环内它是很好的。
代码:
#!/usr/bin/bash
eval array_host=($(xe host-list params=uuid | cut -c 17-))
#Loop through each xen server node
for i in ${array_host[@]};
do
free_mem1=$(xe host-data-source-query data-source=memory_free_kib uuid=$i)
free_mem=( ${free_mem1/\.*} )
set file=D:\TakeFileName.txt
set staging=D:\Download
echo "File location "'%file%
SETLOCAL EnableDelayedExpansion
for /F "tokens=1-2 delims=;;" %%A in (%file%) do ( //for loop
rem echo %%A %%B
echo f | xcopy %%A %staging%\%%B /C /Q /R /Y
echo !errorlevel!
IF !errorleve
我正在尝试执行一个php文件从sos-柏林作业调度程序。我的操作系统是windows 7。我正在遵循文档
#!/usr/bin/php
<?php
echo "hello";
?>
但是当我执行这个脚本时,我得到的错误是
'#!' is not recognized as an internal or external command, operable program or batch file.
我开始理解#!/usr/bin/php是一个linux命令。我应该在这里给出等价的批处理命令。我用谷歌搜索了一下,但没有找到任何有用的结果。
这显示了所有的结果
但我只想显示,如果pserialno行在这里,那么它将显示。
我该怎么做?请帮帮我
$result1 = mysql_query("SELECT * FROM workorder where opendate BETWEEN '$a' AND '$b' order by opendate ASC");
while($row = mysql_fetch_array($result1))
{
// echo out the
我是bash的新手,但我正在尝试将一些列插入到文件中。但首先,我试图将我想要的数据回显到文件中,但我无法使其正常工作。这是我到目前为止所知道的
if [ -f $file ]; then
for i in $data_to_be_echoed; do
echo "$data_to_be_echoed > $file"
done
else
echo "failed"
fi
我尝试了for循环,因为变量$data_to_be_echoed应该能够接受多个内容并将其输入到文件中。例如,如果我说$data_to_be_echoed=
我有一个简单的bash脚本
#!/bin/bash -x
for line in `tail /home/user/line`
do
echo $line
done
但是不知道为什么它会回响所有的单词,而不是下面的每一行都是输出。
++ tail /home/user/line
+ for line in '`tail /home/user/line`'
+ echo Linux
Linux
+ for line in '`tail /home/user/line`'
+ echo is
is
+ for line in '`tail