
我正在编写一个脚本,我试图在其中导出一些变量,并且在打印时导出我的变量后,它会在它之后打印额外的一行。
在这里,我正在读取包含两列的 csv 文件。该脚本存在于文件 script.sh 中,我正在执行该文件 ./script.sh
#!/bin/bash
while IFS="," read f1 f2
do
echo "Source IP : $f1" #it is printing without extra line
echo "Destination IP : $f2" #it is printing without extra line
export sourceIP=$f1
export destIP=$f2
ssh -t -t sjain@$f1 <<ENDSSH
#Start copying 33KB File
echo "Destination IP Address: $destIP" # here it is printing an extra line after destIP
startTime=$(($(date '+%s%N')/1000000))
scp KB_33.txt sjain@$destIP:/home/sjain
endTime=$(($(date '+%s%N')/1000000))
printf 'Elapsed time in copying 33KB file: %s\n' $((endTime-startTime)) …Run Code Online (Sandbox Code Playgroud) 我正在寻找可以完成以下任务的现有 Linux 命令行工具:
考虑有一个输入流/dev/inputstream,它喷出无限的数据流,如下所示:
A
A
B
A
C
Z
A
.
.
.
Run Code Online (Sandbox Code Playgroud)
注意:(每一行是字母表中的一个字符)。
该工具以下列方式使用:
cat /dev/inputstream | tool
Run Code Online (Sandbox Code Playgroud)
该工具的输出应该类似于“top”命令中的输出。它应该是一个持续更新的前 N 个频繁出现项目的列表。
例如:
A -- 10 times
B -- 8 times
Z -- 7 times
C -- 2 times
D -- 1 time
Run Code Online (Sandbox Code Playgroud)
如果流不是无限的,我可以使用sortand完成此操作uniq。
我们都知道我们必须谨慎使用命令-rf选项rm。我想知道 Linux 是否允许执行此命令:rm -rf /?
如果是这样,为什么?如果允许此命令运行,则可能会产生灾难性后果:
要搜索目录中的文件,我找到了两个命令,如下所示:
有时,第一个命令会给我搜索结果,但有时我会执行第二个命令。这两组Linux命令有什么区别?请仅围绕主要差异指定您的答案。
如何让存储的命令适用于以下场景:
CMD='echo "test" >> test.txt'
$CMD
Run Code Online (Sandbox Code Playgroud)
它将适用于其他场景,例如:
CMD='mkdir test'
$CMD
Run Code Online (Sandbox Code Playgroud) 这是一本书——《高效程序员》中的命令行技巧:
pushd `which java`/..
Run Code Online (Sandbox Code Playgroud)
作者说这个命令可以临时进入可执行命令java所在的目录。
当我在 Linux 中输入这个命令时,Bash 抱怨?
bash: pushd: /usr/bin/java/..: Not a directory
Run Code Online (Sandbox Code Playgroud)
我也尝试将目录/usr/bin/java/..直接更改为:
$ pushd /usr/bin/java/..
bash: pushd: /usr/bin/java/..: Not a directory
Run Code Online (Sandbox Code Playgroud)
为什么我失败了?为什么不能使用 更改到目录/..?如何修改此命令以完成相同的任务?
例如,当我尝试将 nice 值分配给程序时:
nice -n -7 waffles
Run Code Online (Sandbox Code Playgroud)
它不允许我使用 bg 命令在后台运行程序。
有没有办法将输出通过管道传输到 bg 命令?如:
nice -n -7 waffles | bg
Run Code Online (Sandbox Code Playgroud)
我试过了
bg | nice -n -7 waffles
Run Code Online (Sandbox Code Playgroud)
我在脚本中运行它,我还尝试了以下示例:
nice -n 7 waffles &
waffles & nice -n 7
Run Code Online (Sandbox Code Playgroud)
在后台启动程序。任何帮助都将不胜感激。
我希望我能做到,cd | [my command]但似乎cd在管道中不起作用。
我想直接cd进入输出[my command]而不编写各种 bash 脚本,我希望有一种简单的方法可以做到这一点。
我的目录结构如下:
/home/workspace/build/
Run Code Online (Sandbox Code Playgroud)
/home/workspace/js/jai.1.js
/home/workspace/js/jai.2.js
/home/workspace/js/jai.3.js
/home/workspace/js/jai.4.js
Run Code Online (Sandbox Code Playgroud)
我想焦油所有的js文件,其前缀是JAI是在/home/workspace/js/目录/home/workspace/build/目录。
假设创建的 tar 文件名为bundle.tar.gz
所以 bundle.tar.gz应该包含以下文件
jai.1.js
jai.2.js
jai.3.js
jai.4.js
Run Code Online (Sandbox Code Playgroud)
我想使用tar命令来实现这一点,而不是将文件复制到目的地,然后对其进行 tar 处理。
编辑
我想从destination目录中解压缩它,即/home/workspace/build/