Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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 单独变量为$1$2$3_Linux_Bash - Fatal编程技术网

Linux 单独变量为$1$2$3

Linux 单独变量为$1$2$3,linux,bash,Linux,Bash,给我: sqlite3 pcheck.db "SELECT * FROM printers" 我想把|分隔的数据放入变量$1到$8中 这就是我们可以像这样输出它的原因 1|10.0.0.x|HP4250INK|public|hp LaserJet 4250|"CNHXXXXXX"|14457|"Sleep Mode" /test.sh echo "$1 $3 $5" echo "$2 $4 $6" 你可以用 1 HP4250INK hp Laserjet 4250 10.0.0.x pu

给我:

sqlite3 pcheck.db "SELECT * FROM printers"
我想把|分隔的数据放入变量$1到$8中

这就是我们可以像这样输出它的原因

 1|10.0.0.x|HP4250INK|public|hp LaserJet 4250|"CNHXXXXXX"|14457|"Sleep Mode"
/test.sh

echo "$1 $3 $5"
echo "$2 $4 $6"
你可以用

1 HP4250INK hp Laserjet 4250
10.0.0.x public "CNHXXXXXX"
对于前三个,以及

echo $YOUR_STRING | cut -d'|' -f1,3,5
对于其他三个。

您可以使用

1 HP4250INK hp Laserjet 4250
10.0.0.x public "CNHXXXXXX"
对于前三个,以及

echo $YOUR_STRING | cut -d'|' -f1,3,5

对于其他三个:

尝试使用
awk
进行此操作:)

或:


尝试为此使用
awk

或:


您可以只使用bash而不使用外部工具

awk 'BEGIN { FS = "|" } ; { printf "%s\t%st\%s\n%s\t%s\t%s", $1, $3, $5, $2, $4, $6 }'
或者使用数组

output=$(sqlite3 pcheck.db "SELECT * FROM printers")
IFS="|"
set -- $output
echo $1
echo $2 #and so on

您可以只使用bash而不使用外部工具

awk 'BEGIN { FS = "|" } ; { printf "%s\t%st\%s\n%s\t%s\t%s", $1, $3, $5, $2, $4, $6 }'
或者使用数组

output=$(sqlite3 pcheck.db "SELECT * FROM printers")
IFS="|"
set -- $output
echo $1
echo $2 #and so on

很好,
设置--$output
做什么?如果您查看
set
bash
的手册页,`选项处理后剩余的任何参数都被视为位置参数的值,并按顺序分配给$1、$2$n、 “很好,
设置--$output
做什么?如果您查看
set
bash
的手册页,`选项处理后剩余的任何参数都被视为位置参数的值,并按顺序分配给$1、$2,”$n`