Bash 编写一个脚本,打印已传递给它的所有10个参数。UNIX终端
大家好,我正试图回答以下问题,但我很难解决它: 编写一个脚本,打印已传递给它的所有10个参数。脚本打印参数后,将参数移位2,然后再次打印所有参数 这是我的密码Bash 编写一个脚本,打印已传递给它的所有10个参数。UNIX终端,bash,command-line-arguments,Bash,Command Line Arguments,大家好,我正试图回答以下问题,但我很难解决它: 编写一个脚本,打印已传递给它的所有10个参数。脚本打印参数后,将参数移位2,然后再次打印所有参数 这是我的密码 #!/bin/sh echo "\$1 is now $1" shift echo "\$2 is now $2" shift echo "\$3 is now $3" echo "\$4 is now $4" echo "\$5 is now $5" echo "\$6 is now $6" echo "\$7 is now $7
#!/bin/sh
echo "\$1 is now $1"
shift
echo "\$2 is now $2"
shift
echo "\$3 is now $3"
echo "\$4 is now $4"
echo "\$5 is now $5"
echo "\$6 is now $6"
echo "\$7 is now $7"
echo "\$8 is now $8"
echo "\$9 is now $9"
echo "\${10} is now ${10}"
这是我在unix终端上的代码
#!/bin/sh
echo "\$1 is now $1"
shift
echo "\$2 is now $2"
shift
echo "\$3 is now $3"
echo "\$4 is now $4"
echo "\$5 is now $5"
echo "\$6 is now $6"
echo "\$7 is now $7"
echo "\$8 is now $8"
echo "\$9 is now $9"
echo "\${10} is now ${10}"
谢谢最简单的方法
x=0
for i in "$@"; do echo "\$$((++x)) is $i"; done
shift
shift
x=0
for i in "$@"; do echo "\$$((++x)) is now $i";done
您的“这个问题”是…?您发布了两次相同的代码。+1,但不完全正确:需要引用扩展名
$i
,以防止全局扩展-如果您作为参数传递了'*'
,您就不想打印当前目录中的文件列表。@charlesduff很好,看起来格尼奥夫击败了我。