BASH脚本从文件中读取用户名并启动程序

时间:2014-07-21 13:20:40

标签: bash

我正在设置BBS,但我不想添加irc访问权限。我正在使用此脚本来解析CHAIN文件。

#!/bin/bash
NODE=$1 #get the node number
USERNAME= sed -n 2p /mystic/temp$NODE/CHAIN.TXT #read the second line in the chain file.
irssi -n $USERNAME # start irssi

但它不起作用。

3 个答案:

答案 0 :(得分:0)

尝试

USERNAME=`sed -n 2p /mystic/temp$NODE/CHAIN.TXT`

USERNAME=$(sed -n 2p /mystic/temp$NODE/CHAIN.TXT)

即。在反引号中包含你的命令。它实际上会告诉shell脚本执行该命令,而不是仅仅将字符串值赋给var USERNAME

答案 1 :(得分:0)

以下是一些建议:

#!/bin/bash
NODE=$1
USERNAME=$(sed -n 2p /mystic/temp$NODE/CHAIN.TXT)  ## Use command substitution.
echo "Username: $USERNAME"  ## Optionally show username for debugging purposes.
irssi -n "$USERNAME"  ## Quote the variable to prevent word splitting and possible pathname expansion.

答案 2 :(得分:0)

您可以使用命令组内的read一系列调用从单个源读取多行。

{ read; IFS= read -r USERNAME; } < /mystic/temp$NODE/CHAIN.txt

读取但忽略文件的第一行,然后读取整个第二行并将其存储在变量USERNAME中。