Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 相当于印刷品-&引用;Bash或命令行中perl的x20_Linux_Macos_Bash_Command Line - Fatal编程技术网

Linux 相当于印刷品-&引用;Bash或命令行中perl的x20

Linux 相当于印刷品-&引用;Bash或命令行中perl的x20,linux,macos,bash,command-line,Linux,Macos,Bash,Command Line,在perl中,您只需编写print“-”x20,就可以得到一行破折号……但在linux上的bash/commandline中,我需要同样的东西,而不需要perl/(g)awk等。有什么想法吗?其目的是在find命令的-exec中使用它,我希望防止使用简单的echo“-----------”..您可以创建自己的函数 customprint(){ num=$1 symbol=$2 for((i=1;i<=$num;i++));do printf "%s" $symbol; done

在perl中,您只需编写print“-”x20,就可以得到一行破折号……但在linux上的bash/commandline中,我需要同样的东西,而不需要perl/(g)awk等。有什么想法吗?其目的是在find命令的-exec中使用它,我希望防止使用简单的echo“-----------”..

您可以创建自己的函数

customprint(){
  num=$1
  symbol=$2
  for((i=1;i<=$num;i++));do printf "%s" $symbol; done
}

customprint 20 "-"


您可以创建自己的函数

customprint(){
  num=$1
  symbol=$2
  for((i=1;i<=$num;i++));do printf "%s" $symbol; done
}

customprint 20 "-"


所以我有一个简短的解决方案

下面将生成一条包含60个破折号的线…没有函数

echo ={1..60} | sed  "s/[0-9]* \?//g"

所以我有一个简短的解决方案

下面将生成一条包含60个破折号的线…没有函数

echo ={1..60} | sed  "s/[0-9]* \?//g"

这不应该是
echo${a//0/$symbol}
?不,“%0s”会给你空格。只有当您使用“%0d”时,它才会给您提供前导0。自己的函数的问题是我必须在某个地方定义它。您可以在shell脚本中定义它。有趣的是,
%0s
在Mac OS X bash、Solaris bash/ksh和HP-UX ksh上为零;但是macksh上的空间。但是手头上没有Linux设备。有趣<代码>%${num}s似乎始终提供空格。这不应该是
echo${a//0/$symbol}
?不,“%0s”提供空格。只有当您使用“%0d”时,它才会给您提供前导0。自己的函数的问题是我必须在某个地方定义它。您可以在shell脚本中定义它。有趣的是,
%0s
在Mac OS X bash、Solaris bash/ksh和HP-UX ksh上为零;但是macksh上的空间。但是手头上没有Linux设备。有趣<代码>%${num}s似乎总是给空格。在您的问题中,您说过没有使用Perl/awk,所以现在您使用的是sed?这比较短,没有使用外部工具:
eval printf'%.0s-'{1..$num}
是的,您是对的。你的建议比我的更酷。谢谢。在您的问题中,您说过没有使用Perl/awk,所以现在您使用的是sed?这比较短,没有使用外部工具:
eval printf'%.0s-'{1..$num}
是的,您是对的。你的建议比我的更酷。谢谢