{"id":853,"date":"2020-08-26T15:33:08","date_gmt":"2020-08-26T13:33:08","guid":{"rendered":"http:\/\/www.instruyete.org\/?p=853"},"modified":"2020-08-26T15:33:08","modified_gmt":"2020-08-26T13:33:08","slug":"praxis-tipps-sh-debuggen","status":"publish","type":"post","link":"https:\/\/www.instruyete.org\/?p=853","title":{"rendered":"praxis tipps: sh debuggen"},"content":{"rendered":"\n<p>Mal etwas aus der Dachbodenkiste. Wenn ein shell\/bash script nicht das tut, was man von ihm erwartet gibt es zwei nette Techniken um das Problem zu l\u00f6sen:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sh -x &lt;scriptname><\/pre>\n\n\n\n<p>das ist der <em>xtrace<\/em> mode, bei dem jedes Kommando auf <em>stderr<\/em> mit einem vorangestelltem <strong>+<\/strong> ausgegeben wird, bevor es ausgef\u00fchrt wird. Damit kann man in einem sich bis zur Problemstelle vorw\u00e4rtsdebuggen.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sh -n &lt;scriptname><\/pre>\n\n\n\n<p>das ist der <em>noexec<\/em> mode, welcher die Kommandos liest aber nicht ausf\u00fchrt. Damit l\u00e4sst sich der Syntax vorab pr\u00fcfen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mal etwas aus der Dachbodenkiste. Wenn ein shell\/bash script nicht das tut, was man von ihm erwartet gibt es zwei nette Techniken um das Problem zu l\u00f6sen: sh -x &lt;scriptname> das ist der xtrace mode, bei dem jedes Kommando auf stderr mit einem vorangestelltem + ausgegeben wird, bevor es ausgef\u00fchrt wird. Damit kann man in &hellip; <a href=\"https:\/\/www.instruyete.org\/?p=853\" class=\"more-link\"><span class=\"screen-reader-text\">praxis tipps: sh debuggen<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,7],"tags":[],"class_list":["post-853","post","type-post","status-publish","format-standard","hentry","category-linux","category-unix"],"_links":{"self":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts\/853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=853"}],"version-history":[{"count":1,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts\/853\/revisions"}],"predecessor-version":[{"id":854,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts\/853\/revisions\/854"}],"wp:attachment":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}