Articles of Linux操作系统

设置-e覆盖bash脚本中的参数variables($ @)

我有一个脚本test.sh #/!bin/bash set -e trap errorhandler ERR errorhandler(){ status=$? trap – ERR exit $status } echo "$@" exit 0 当我打电话给sh test.sh 'Hey'它会打印-e而不是Hey 。 我的工作是环绕set -e反引号,但不知道它是否仍然按照预期工作 另一个解决方法是将其存储在第一行中的variables中,但是我希望在第一行中set -e ,这有一个明显的原因(处理错误)。 有没有一个聪明的方法来做到这一点? 像“嘿,不要碰我的$ @”命令。

如何将绝对path转换为相对在C linux

我想知道一个符号链接的绝对path如何在Linux(Ubuntu)操作系统上以c语言为基础,根据给定目录(包括链接文件)转换为相对path。 我以为search相对path的子string,但如果它在文件夹的层次结构中已经存在更高? 这里是我想要做的更具体的描述:相对path: folder/folder1/folder2 绝对path: /home/giorgos/Desktop/folder/folder1/folder2/a.pdf 变成 /home/giorgos/Desktop/myfolder/folder1/folder2/a.pdf 显然我不能'简单地search和replace“文件夹/”,考虑这种情况: /home/giorgos/Desktop/folder/folder/folder/folder1/folder2/a.pdf 它可以向前和向后search,如果replace它仍然给出了一个错误的输出只有当我知道相对path,我可以search绝对向后并取代它,那么输出将是正确的: /home/giorgos/Desktop/folder/myfolder/folder/folder1/folder2/a.pdf

如何创build一个“嵌套的SSH隧道”?

我通过2台其他服务器连接到一台Linux服务器: MyPC –(ssh)–> serverA –(ssh)–> serverB –(ssh)–> FinalServer httpd运行在FinalServer上,在80 serverA / serverB上侦听只接受22端口的sshd服务 有没有办法像这样访问myPC上的FinalServer: myPC> curl http://127.0.0.1:80 Hi , this is FinalServer Httpd Service!! myPC> 万分感谢!!

尽pipe使用了BOOST_ROOT,但找不到我本地的Boost发行版而不是已安装的发行版

我有一个关于FindBoost的问题。 我试图从我自己的1.49升级版本的HPC(redhat)上selectboost组件,而这个组件已经预先安装了默认的增强版本1.47。 我想独占使用,我一直试图使用BOOST_ROOT作为cachingvariables,内部cachingvariables和使用set(ENV {BOOST_ROOT})的环境variables,但没有任何工作:我可以看到BOOST_ROOT (指向1.49.0版本),但似乎对FindBoost生成的库path没有影响:它们都指向1.47.0版本的库。 我正在尝试这个: # I give a chance to the user to set BOOST_PATH to the local boost distribution before calling FindBoost if( NOT DEFINED BOOST_PATH) message(STATUS " Set BOOST_PATH to a specific Boost distribution if needed.") set(BOOST_PATH "Default" CACHE PATH "Set the path to a specific Boost distribution if not default.") […]

在Linux下replace文件中的自定义string

我故意在这里发布这个问题,虽然 – 对于我的情况 – 这是laTex相关的。 问题本身虽然是通用的。 我有几个*.tex源文件包含图像的引用,例如image1.jpg和image2.png 。 我想search所有的源文件的指定扩展集(在这种情况下, JPG和PNG ),并将其replace为他们的PDF对应。 因此,我想结束引用image2.pdf和image2.pdf 。 使问题复杂化,我有一个20个文件(image3.jpg,image 4.png等)的列表,我不想改变。 有没有一个简单的解决scheme(基于sed或任何工具的build议?),这可能有帮助? 虽然我不是正则expression式的大师 ;)

使用variables作为bash关联数组中的键

我正在尝试将Linux中的英文字典读取到关联数组中,使用单词作为键和预定义的string作为值。 这样我可以通过键查找单词,看看它们是否存在。 我也需要所有的话是小写的。 这是相当简单的,但bash语法正在我的方式。 当我运行下面的代码,我得到一个'坏数组下标'错误。 任何想法,为什么这可能是? function createArrayFromEnglishDictionary(){ IFS=$'\n' while read -d $'\n' line; do #Read string into variable and put into lowercase. index=`echo ${line,,}` englishDictionaryArray[$index]="exists" done < /usr/share/dict/words IFS=$' \t\n' }

我如何检测USB插入或不是在C中的Linux

我在C编程新手这里我想检测USB插入或不在Linux我想在我的embedded式Linux设备上检测到这个东西。 其中有定制的Linux。 所以我想检测的USB块,我必须安装此块。 像sda,sdb or sdc 。 我想在C编程的这个东西的Linux。 这里我有usb设备的path/sys/bus/usb/devices我可以看到USB信息可用在这里/sys/bus/usb/devices/1-x所以我想获取块的地址插入这个USB像sda,sdb or sdc 。 所以现在取得这个地址名称后,我必须安装USB特定的path。 所以任何人都可以请build议我如何检测USB插入或不插入比我怎么知道这个地址

GREP和REGEX有问题

我有一个文本文件,以下列格式存储四个数字的组合: Num1,Num2,Num3,Num4 Num5,Num6,Num7,Num8 …………. 我有一大堆这样的文件,我需要的是grep包含上述模式的所有文件名。 我构build我的grep如下: grep -l "{d+},{d+},{d+},{d+}" /some/path/to/file/name grep终止而不返回任何东西。 有人可以指出我的grep语句可能会有什么问题吗? 谢谢

AVR ISP MKII,avrdude,Ubuntu 11.10

所以,我以前在Ubuntu上工作过。 但后来我升级到11.10。 现在,没有这样的运气。 注意:如果你仍然在搞这个在eclipse上工作,你可能想尝试这个命令行的东西…如果它不工作在这里,它不会在eclipse中工作。 我有这个错误: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. 我已经尝试过所有不同的configuration。 即:-B 1,10,1000, -F没有帮助,那么你只是得到000000或任何你的序列。 另外,我应该从下面的输出中清楚地看到,可以看到程序员,甚至是目标板,并读取其电压。 你也可以看到目标芯片复位。 (即:我已经testing了一些包含DB101的设备,你可以看到它何时重置) 完整的输出是这样的: > avrdude -c avrispmkII -P usb -p m1281 -B 100 […]

为什么不能删除文件?

我是系统的根用户有一个文件: D:\XAMPP\htdocs\magento_41\magento\ 它位于htdocs目录下。 当在[root@localhost htdocs]使用rm -rf D:\XAMPP\htdocs\magento_41\magento\ 。 它不能删除这个文件。 如何删除它? 谢谢。