小编Hen*_*eld的帖子

在Shell脚本中添加选项卡

所以我有一个非常简单的shell脚本,它在一个人的计算机的hosts文件中输入一个IP地址和一个域名.仅用于"开发目的!" 它工作正常,它只是输入IP地址和域名

192.168.53.215dev.env.os 192.168.53.215dev.source.os

我希望它输入它像这样:

192.168.53.215 dev.env.os 192.168.53.215 dev.source.os

所以基本上我希望它在IP地址和域名之间添加空间,遗憾的是我无法弄明白.任何帮助将不胜感激,这是一个简单的脚本,不应该与过于复杂的脚本混杂.请保持简单,并准确解释你正在做什么我想学习它没有为我做完感谢!

这是代码:

do shell script "/usr/bin/printf \"\\n# Add #####'s ip for Sourcebox\\n192.168.53.215\\dev.env.os\\n192.168.53.215\\dev.source.os\\n\" >> /etc/hosts; /usr/bin/dscacheutil -flushcache" with administrator privileges
Run Code Online (Sandbox Code Playgroud)

shell scripting applescript hosts vhosts

3
推荐指数
1
解决办法
2万
查看次数

将 4 字节的十六进制字符串转换为整数

我正在尝试在 MFC 项目中进行从十六进制字符串到整数的转换。代码是这样的:

CString sMask = "0xFFFFFFE0";
char* pMaskBuffer   = sMask.GetBuffer(sMask.GetLength());               
sMask.ReleaseBuffer();
char * p = NULL;
long iMask = strtol(pMaskBuffer, &p, 16);
Run Code Online (Sandbox Code Playgroud)

当 sMask 变量很小时,代码运行良好。但是 4 字节掩码生成了奇怪的值。而不是 4294967264 ,我得到 2147483647. 如何克服这个。请帮忙。

c++ mfc hex strtol

2
推荐指数
1
解决办法
1777
查看次数

Ksh和if语句

我在C++中做了很少的编程,我并不真正理解如何在Knoppix OS上使用KornShell(ksh)中的代码.教授给我们的资源很少,所以很难解决.我们上课的两本教科书主要讨论UNIX中各种命令,但与ksh几乎没有关系.

编写一个shell脚本,它只接受一个必须是正整数的参数.(我的第二个有两个)

Ksh代码:

NUMBER=$1
read -p NUMBER
# Test that one argument was input.
if [[ $# -ne 1 ]];then
  echo "Please enter an integer as an argument"
  exit 1
elif [[ $NUMBER -le 0 ]];then # Test value of argument is less than or equal to zero
    echo "Please enter a number > 0" 
    exit 1
fi

while [["$NUMBER" -ne 1]];do
    printf $NUMBER
if [[$NUMBER -gt 1]];then
        printf ","
    fi
NUMBER=$(($NUMBER-1))
done
printf $NUMBER
Run Code Online (Sandbox Code Playgroud)

当我从shell运行它时,我不断得到"请输入一个整数作为参数"作为输出,尽管条目是3,或类似的东西.

我注意到用户输入没有任何内容,所以我试着自己输入

read -p …
Run Code Online (Sandbox Code Playgroud)

linux shell scripting ksh if-statement

2
推荐指数
1
解决办法
2万
查看次数

K&R C函数指针

我正在阅读K&R书(第一次)我遇到了一个使用指针的函数.

函数调用

qsort(
    (void **)lineptr,
    0,
    nlines-1,
    (int (*)(void *,void *)) (numeric ? numcmp : strcmp)
);
Run Code Online (Sandbox Code Playgroud)

我所理解的是,基于numeric地址strcmpnumcmp传递地址,地址类型被转换(int (*)(void *,void *))为函数所需.

功能定义

void qsort(void *v[],int left,int right, int (*comp)(void *, void *))
Run Code Online (Sandbox Code Playgroud)

关于函数指针,我的解释是正确的吗?

c pointers function-pointers

2
推荐指数
1
解决办法
687
查看次数

如何在linux中删除awk里面的尾随\n

我有一个像这样的输入文件:

Apr 24 2014;
is;
a;
sample;
;
Jun 24 2014 123;
may 25 2014;
is;
b;
sample;
;
Dec 21 2014 987
Run Code Online (Sandbox Code Playgroud)

...我想要这样的输出:

Apr 24 2014;is;a;sample;;Jun 24 2014 123
may 25 2014;is;b;sample;;Dec 21 2014 987
Run Code Online (Sandbox Code Playgroud)

(我正在使用ksh)

linux awk ksh

2
推荐指数
1
解决办法
196
查看次数

功能失败 - shell脚本从Bash转换为Korn

我编写了一个shell脚本,在运行bash shell的服务器上进行数据操作.

我的脚本有一个函数可以检索ZIP文件中的数据

function getCTLfile() {
  for i in ${Array[@]}; do 
    if [[ `echo ${i}|awk -F . '{print $NF}'` == "ctl" ]]; then 
      echo "${i}" 
    fi
  done
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好但是这台机器硬件有问题所以我们的系统管理员要求我将我的代码移植到运行Korn shell的另一台服务器上.

当我运行我的脚本时,它在我的功能上失败了!! 即使我从命令行输入它.

$ function getCTLfile() {
-ksh: syntax error: `(' unexpected
Run Code Online (Sandbox Code Playgroud)

我需要在任何地方更改语法吗?我做了一些研究,似乎一切都应该有效.

bash ksh

1
推荐指数
1
解决办法
371
查看次数

执行命令后,SSH会话未返回o / p

我正在使用openSSH在测试计算机(Windows XP)和控制器计算机(win 7)之间建立ssh连接。我已经在测试计算机上配置了ssh服务器,并且能够获取ssh会话并运行命令。当我在此ssh会话中运行命令时,在腻子会话中显示o / p,但是当我使用相同的命令并尝试检索o / p时,我没有任何价值。

我已经在我的XP机器上安装了openssh,这是Windows v3.8.1p1-1的版本OpenSSH。

这是我配置它以在Windows上运行ssh的方式

C:\Documents and Settings\Administrator>cd c:\OpenSSH    
C:\OpenSSH>cd bin    
C:\OpenSSH\bin>mkgroup -l >> ..\etc\group    
C:\OpenSSH\bin>mkpasswd -l -u administrator >> ..\etc\passwd    
C:\OpenSSH\bin>net start opensshd
The requested service has already been started.
Run Code Online (Sandbox Code Playgroud)

下面是我的相同代码

import paramiko


class TestSSH():

    def __init__(self):
        self.ip = "172.xxx.xxx.xxx"
        self.user = "Administrator"
        self.password = "passpass"


    def run(self):
        ssh_client = paramiko.SSHClient()
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh_client.connect(
            self.ip,
            username = self.user,
            password = self.password
        )
        std_in, std_out, std_err = ssh_client.exec_command("dir")

        print std_out.read()


obj = TestSSH()
obj.run()
Run Code Online (Sandbox Code Playgroud)

这是我要参加油灰会议的o / …

python ssh stdout paramiko

1
推荐指数
1
解决办法
2524
查看次数

垂直打印列表字典

我想垂直打印以下列表字典:

result = {'WeightedLevel': [388.850952, 716.718689, 1312.55957, 2405.087158, 4460.083984, 8543.792969, 18805.201172, 57438.140625, 1792.367554], 'Job': 'Desktop', 'LoadLevel': [0.212399, 0.393191, 0.727874, 1.347436, 2.494368, 4.617561, 8.548006, 15.824027, 1.0], 'Task': 'test', 'Failure': [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0], 'Blocks': [7255.151855, 231.589661, 9.365415, 0.55364, 0.0504, 0.006408, 0.001204, 0.000842, 2.060041]}
Run Code Online (Sandbox Code Playgroud)

所以看起来应该是这样的:

Job           Task          LoadLevel         Blocks          Failure         WeightedLevel
Desktop       test          4546543           4384284         0,46544564      0,1354385
                            474454            978456          2               9655
                            9655              55654           966             665 
Run Code Online (Sandbox Code Playgroud)

等等...

我尝试过在网上找到的一些代码,但它们仍然会横向打印结果:

for k, d in result.items():
    print(k + ":", d)         
Run Code Online (Sandbox Code Playgroud)

和 …

python dictionary list python-3.x

1
推荐指数
1
解决办法
4424
查看次数

unix shell中的字符串分隔

STRINGS=str1,str2,str3
Run Code Online (Sandbox Code Playgroud)

我希望每个字符串按空格分隔,如下所示:

STRING1=`echo $STRINGS | cut -d',' -f1` ==> gives "str1"

REMAINING_STRING=`echo $STRINGS | cut -d',' -f2- | 
    sed -e 's/,/ /g'` ==> gives "str2 str3"
Run Code Online (Sandbox Code Playgroud)

但是当字符串只包含一个条目时,例如STRINGS = str1,则REMAINING_STRING也会填充与STRING1相同的值.当STRINGS只包含一个条目时,我希望REMAINING_STRING为null.

STRINGS=str1

STRING1=`echo $STRINGS| cut -d',' -f1` ==> gives "str1"

REMAINING_STRING=`echo $STRINGS | cut -d',' -f2- | sed -e 's/,/ /g'`
Run Code Online (Sandbox Code Playgroud)

==>给出"str1",但这应该是null.

如何在unix shell中执行此操作?

unix bash shell ksh cut

1
推荐指数
2
解决办法
188
查看次数

使用断言控制流程

我想检查一个单词是否有尾随分号。我有一个长字符串中单词的位置,我想检查该位置的字符是否start of word + length of word:。该单词可能是字符串中的最后一个单词,因此尝试获取下一个字符将引发IndexException

我有三个想法:

1)检查我们是否不在字符串的末尾,然后检查它是否不是分号

semicolon_pos = pos_word + len(word) # Possible position
if semicolon_pos < len(long_string) and long_string[semicolon_pos] == ':':
    # do something...
else:
    # do something else
Run Code Online (Sandbox Code Playgroud)

不是通常认为的 pythonic

2) Try- except 分号提取和分号的等式

semicolon_pos = pos_word + len(word) # Possible position
try:
   if long_string[semicolon_pos] == ':':
      # Do something
   else:
      # do something else (which is the same as in the except clause)

except IndexError:
    # do something else …
Run Code Online (Sandbox Code Playgroud)

python exception control-flow

0
推荐指数
1
解决办法
889
查看次数