Questions tagged «read»

“ read”是一个shell实用程序,用于从标准输入流或文件描述符中读取字符串。

1
如何在Linux中获得总读写IOPS?
如何在Linux中使用命令行或以编程方式分别读写IOPS?我已经安装了sysstat软件包。 请告诉我如何使用sysstat打包命令分别计算这些值。 或者,是否可以使用文件系统来计算它们? 例如: /proc或/sys或/dev
32 linux  io  disk  read  write 

2
在bash中,管道未设置值后读取
编辑:原始标题为“ bash读取失败” 使用ksh时,我将read用作分隔值的便捷方法: $ echo 1 2 3 4 5 | read a b dump $ echo $b $a 2 1 $ 但是它在bash中失败了: $ echo 1 2 3 4 5 | read a b dump $ echo $b $a $ 我没有在手册页中找到失败的原因,知道吗?
22 bash  shell  pipe  read 

2
read -r是什么意思?
为了了解另一个答案: find / -type d -print0 | while read -r -d ''; do ls -ltr "$dir" | sed '$!d' 第一步是了解read命令的-r选项的用法。 首先,我认为只需执行即可 man read 查找-r选项的含义,但是我意识到手册页根本不包含对选项的任何解释,因此我用谷歌搜索了一些read -t,read -p示例,但没有read -r。

4
为什么某些内置的shell`read`无法从`/ proc`文件中读取整行?
在某些类似Bourne的shell中,read内置/proc命令无法从file in读取整行(以下命令应在in中运行zsh,$=shell并$shell用其他shell 替换): $ for shell in bash dash ksh mksh yash zsh schily-sh heirloom-sh "busybox sh"; do printf '[%s]\n' "$shell" $=shell -c 'IFS= read x </proc/sys/fs/file-max; echo "$x"' done [bash] 602160 [dash] 6 [ksh] 602160 [mksh] 6 [yash] 6 [zsh] 6 [schily-sh] 602160 [heirloom-sh] 602160 [busybox sh] 6 read标准要求标准输入需要是一个文本文件,该要求是否引起各种行为? …
19 linux  shell  proc  read 

1
遍历存储在变量中的多行字符串
我读到写这样的东西很不好,for line in $(command)相反,正确的方法似乎是: command | while IFS= read -r line; do echo $line; done 这很好。但是,如果要迭代的是变量的内容而不是命令的直接结果,该怎么办? 例如,假设您创建以下文件quickfox: The quick brown foxjumps\ over - the lazy , dog. 我希望能够做这样的事情: # This is just for the example, # I could of course stream the contents to `read` variable=$(cat quickfox); while IFS= read …
17 bash  read 


4
Bash:交互式远程提示
我有一个脚本可以连接到远程服务器,并检查是否安装了某些软件包: ssh root@server 'bash -s' < myscript.sh myscript.sh: OUT=`rpm -qa | grep ntpdate` if [ "$OUT" != "" ] ; then echo "ntpdate already installed" else yum install $1 fi 这个例子可以简化。这是myscript2.sh同样的问题: read -p "Package is not installed. Do you want to install it (y/n)?" choise 我的问题是bash无法以交互方式读取我的答案。 有没有一种方法可以远程执行本地脚本而不丢失提示用户的能力?
16 bash  shell-script  ssh  stdin  read 

3
bash:在只读根分区上使用read <<<“ $ VARIABLE”时出现一些问题。任何已知的解决方法?
碰巧的是,我不得不使用我的ATA-ID-to-device-name脚本(在这里找到:https : //serverfault.com/questions/244944/linux-ata-errors-translating-to-a-device-name/ 426561#426561)在只读 /分区上。如果您感到好奇,它是一个Ubuntu恢复控制台,可让您访问/分区,但默认情况下会将其挂载为只读。我对此感到高兴,因为否则我可能永远都不会发现我的脚本由于以下特定行而在R / O系统上的行为异常: IFS=: read HostMain HostMid HostSub &lt;&lt;&lt; "$HostFull" 这并不会在没有写权限的工作。我不会以为它会失败。但是显然,&lt;&lt;&lt;操作员确实需要将一些临时文件写入某个位置。 但是,有什么方法可以避免创建临时文件,或者有什么方法可以指定将文件写入的位置?在Ubuntu恢复控制台中,对/run目录有-非常好-的写权限,如果我能以某种方式“说” read将临时文件写到比平常其他地方的位置,则可以这样做。

3
用“读取”将脚本管道化为bash
我需要通过管道它运行一个脚本bash用wget(而不是直接使用bash运行它)。 $ wget -O - http://example.com/my-script.sh | bash 它不起作用,因为我的脚本中包含read语句。由于某些原因,在进行bash传输时这些命令不起作用: # Piping to bash works in general $ echo 'hi' hi $ echo "echo 'hi'" | bash hi # `read` works directly $ read -p "input: " var input: &lt;prompt&gt; # But not when piping - returns immediately $ echo 'read …
10 bash  shell  pipe  read 

4
SSH会话中的SSH期间有多个命令
我有一台本地计算机,该计算机应该与远程master计算机建立SSH会话,然后再从master到每个远程计算机进行另一个内部SSH会话slaves,然后执行2条命令,即删除特定目录并重新创建它。 请注意,本地计算机对主服务器具有无密码的SSH,而主计算机对从服务器具有无密码的SSH。此外,所有主机名.ssh/config在本地/主计算机中都是已知的,而从属主机的主机名在slaves.txt本地中,我从那里读取它们。 所以我的工作是这样的: username="ubuntu" masterHostname="myMaster" while read line do #Remove previous folders and create new ones. ssh -n $username@$masterHostname "ssh -t -t $username@$line "rm -rf Input Output Partition"" ssh -n $username@$masterHostname "ssh -t -t $username@$line "mkdir -p EC2_WORKSPACE/$project Input Output Partition"" #Update changed files... ssh -n $username@$masterHostname "ssh -t -t …
10 bash  ssh  amazon-ec2  read 

2
在管道中使用脚本时如何读取用户输入
一般问题 我想编写一个与用户交互的脚本,即使该脚本位于管道链的中间。 具体例子 具体来说,它用file或来stdin显示行(带有行号),要求用户输入选择或行号,然后将相应的行打印到stdout。我们将此脚本称为selector。然后,基本上,我希望能够 grep abc foo | selector &gt; myfile.tmp 如果foo包含 blabcbla foo abc bar quux xyzzy abc 然后selector向我展示(在终端上,而不是在myfile.tmp!中)带有选项 1) blabcbla 2) foo abc bar 3) xyzzy abc Select options: 之后我输入 2-3 并以 foo abc bar xyzzy abc 作为的内容myfile.tmp。 我已经启动并运行了一个选择器脚本,如果我不重定向输入和输出,则基本上可以正常运行。所以 selector foo 表现得像我想要的。但是,当像上面的示例中那样将内容管道在一起时,selector将显示的选项打印到myfile.tmp并尝试从grepped输入中读取选择。 我的方法 我尝试使用的-u标志read,如 exec 4&lt; /proc/$PPID/fd/0 exec …

3
阅读时如何处理退格键?
我如何处理输入的退格键,它显示^?是否尝试过以及如何read计算字符,因为12^?3已经有5个字符完成了(尽管它们都不是实际的输入),但是在12^?3^?返回提示后,很奇怪。请帮忙! -bash-3.2$ read -n 5 12^?3^?-bash-3.2$
10 bash  shell  line-editor  read 

3
在read驱动的while循环中使用read作为提示?
我有一个用例,我需要在每次迭代开始时读入多个变量,并将用户的输入读入循环。 我不知道如何探索的解决方案的可能路径- 对于分配,请使用另一个文件句柄而不是stdin 使用for循环而不是... | while read ......我不知道如何在for循环内分配多个变量 echo -e "1 2 3\n4 5 6" |\ while read a b c; do echo "$a -&gt; $b -&gt; $c"; echo "Enter a number:"; read d ; echo "This number is $d" ; done


2
读取-a数组-d'\ n'<foo,退出代码1
如果我尝试执行 read -a fooArr -d '\n' &lt; bar 退出代码为1-即使它完成了我想要的操作;将每行放入bar数组的元素中fooArr(使用bash 4.2.37)。 有人可以解释为什么会这样吗 我发现了其他解决方法,例如下面的方法,所以这不是我要的。 for ((i=1;; i++)); do read "fooArr$i" || break; done &lt; bar 要么 mapfile -t fooArr &lt; bar
8 bash  newlines  read 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.