- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想重复 #
10 次,比如:
"##########"
如何在 Bourne shell (/bin/sh
) 中执行此操作?我试过使用 print
,但我猜它只适用于 bash shell。
请不要给出 bash 语法。
最佳答案
shell 本身没有明显的重复字符串的功能。只需重复十次,就很难击败显而易见的东西
echo '##########'
为了将单个字符重复指定的次数,即使在繁忙的 BusyBox 上也应该可以工作。
dd if=/dev/zero bs=10 count=1 | tr '\0' '#'
不是很优雅但开销相当低。 (您可能需要从 dd
重定向标准错误以摆脱讨厌的进度消息。)
如果您有一个保证足够长的文件(例如,您当前正在运行的脚本),您可以将前 10 个字符替换为 tr
。
head -c 10 "$0" | tr '\000-\377' '#'
如果你有一个非常传统的用户空间(比如 head
不支持 -c
选项)一个 1980 年代兼容的变体可能是
yes '#' | head -n 10 | tr -d '\n'
(您的 tr
可能不完全支持我在这里使用的反斜杠序列。请查阅它的手册页或您本地 1970 年代后期的学术程序员。)
...或者,见鬼
strings /bin/sh | sed 's/.*/#/;10q' | tr -d '\n' # don't do this at home :-)
在没有外部实用程序的纯遗留 Bourne shell 中,您真的不能做得比
for f in 0 1 2 3 4 5 6 7 8 9; do
printf '#'
done
在一般情况下,如果您能想出一个生成器表达式(至少)产生所需的重复次数,您就可以对其进行循环。下面是 seq
和 jot
的简单替换:
echo | awk '{ for (i=0; i<10; ++i) print i }'
但是你也可以从 Awk 中输出:
echo | awk '{ for (i=0; i<10; ++i) printf "#" }'
关于unix - 如何在 Bourne Shell 中重复一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28191126/
我想在 Bourne shell 中编写一个循环来迭代一组特定的数字。通常我会使用 seq : for i in `seq 1 10 15 20` #do stuff loop 但是貌似在这个S
我正在尝试根据正则表达式验证用户输入。 vari=A if [ $vari =~ [A-Z] ] ; then echo "hurray" fi 我得到的输出是 swf.sh[3]: =~:
我正在尝试对脚本中的输出数据进行一些格式化,但不知道如何进行左右对齐以及宽度。谁能指出我正确的方向? 最佳答案 你可以使用printf。示例 $ printf "%15s" "col1" $ prin
我有一个运行在预设环境变量包括的地方的 shell: FOOCOUNT=4 FOO_0=John FOO_1=Barry FOO_2=Lenny FOO_3=Samuel 我无法改变获取这些数据的方式
我有以下脚本 cat $1 | while read line do line=`echo $line | tr "[:lower:]" "[:upper:]"` if [ "`ech
$ freebsd-version 10.3-RELEASE-p17 $ portinstall() { port="$1"; shift env="$@" #1 en
(这间接地是更大的家庭作业的一部分) 我有类似的东西 在阅读 LINE 时 做 事情完成到$LINE echo "输入输入:" 读取输入 完成到 $INPUT 的事情 完成 我找不到使用控制台/默认标
编写 Bash 脚本或 Bourne 脚本哪个更好?我的团队编写 Bourne 脚本,但我不完全确定为什么。 如果这是一个圣战问题(即:vim vs. emacs)请直接回复:圣战。 最佳答案 这取决
我有很多变量 var1 var2 ... varx 可能为空也可能不为空。我不想有多个 if 语句并且想知道如何进行循环,我向其提供变量列表并检查它们是否为空。如果一个变量为空,它的值应该设置为- 最
我正在使用 bourne shell 并想执行以下操作: COUNTER=0 CIRCLEPART1="|" CIRCLEPART2="/" CIRCLEPART3="--" CIRCLEPART4=
我在 Upstart 脚本中使用 echo 来记录事情: script echo "main: some data" >> log end script post-start script
最近我一直在尝试在 Ubuntu 中自定义位于 ~/.profile 的 shell 配置文件。我想做的一件事是: # PATH-like variable containing paths sepa
我想重复 # 10 次,比如: "##########" 如何在 Bourne shell (/bin/sh) 中执行此操作?我试过使用 print,但我猜它只适用于 bash shell。 请不要给
假设我有一些可以接受多个选项的实用程序,每个选项后跟一个文件名。例如,我可以将其称为 myutil , myutil -o somefile , myutil -p anotherfile , myu
这个问题在这里已经有了答案: Delete specific line number(s) from a text file using sed? (7 个回答) 5年前关闭。 我正在 Bourne
我想测试一个字符串是否有“子字符串”。大多数在线答案都基于 Bash。我试过了 if [ $string == "*substring*" ] 这是行不通的。现在 if echo ${string}
这个问题在这里已经有了答案: When to wrap quotes around a shell variable? (5 个回答) 6年前关闭。 我想创建一些脚本来填充一些模板并将它们插入到我的项
我需要比较 shell 中的字符串: var1="mtu eth0" if [ "$var1" == "mtu *" ] then # do something fi 但显然“*”在 shel
在bourne shell中,我有以下内容: VALUES=`some command that returns multiple line values` echo $VALUES 好像: "ONE
我有一个 Bourne shell (/bin/sh) 脚本(为了可移植性)想要监视另一个程序。它应该启动另一个程序,然后等待它退出。当第二个程序退出时,它会做一些最后的工作并自行退出。问题是脚本还需
我是一名优秀的程序员,十分优秀!